Ответов: 5 Просмотров: 164
|
Добрый день, коллеги!
Помогите начинающему недокодеру, ибо мозг уже поломала.
Итак, у нас есть двухмерный массив (i строк, j столбцов). Нужен скрипт, который выведет на экран номера строк, содержащих двузначные числа.
Реализовать пытаюсь с помощью перебора элементов и поиска сопадений (preg_match).
Получается вот такой код:
PHP:
скопировать код в буфер обмена
<?PHP $mas=array($a, $b, $c, $d, $e); //это сам массив $k=0; //этот элемент будет принимать 2 значения - 0 в случае несовпадения и 1 в случае совпадения $j=0; //счётчик элементов $i=0; //счётчик строк $SL=count($mas[0 ])-1; //длина строки массива $QS=count($mas)-1; //число строк for ($i=0; $i<=$QS; $i++) //перебираем строки {for ($j=0; $j<=$SL; $j++) //перебираем элементы {$k=preg_match('/^[1-9][0-9]$/', $mas[$i][$j]);}; //проверка соответсвия элемента шаблону if ($k=1) {echo $i;};} ?>
Пояснения к коду: Мы анализируем каждый элемент на соответствие шаблону и результат записываем в $k. Если скрипт находит соответствие, то в $k заносится 1, в противном случае 0. Если соответствие найдено (к=1), то выводим номер строки (i).
Так он должен работать. Но не работает. Выдает 01234 (т.е все строки, что неправильно).
Ставила echo $k после строки 18, чтобы проверить, правильные ли значение получает $k. Вывод - правильные. Также добавляла else(какое-нибудь действие) в строку 19. В итоге при $k=0, ничего не происходит. Т.е на этот этап цикла приходит только $k=1, причём независимо от того, какое $k получилось в 18 строке.
Ошибка где-то после 18 строки, я думаю, поскольку до неё всё выполняется правильно.
Или в цикле запуталась.
Помогите, пожалуйста, разобраться, что не так.
З.Ы. Я совсем новичок и пока очень криворукий, так что объясняйте, пожалуйста, как для умственно отстлого ребёнка |