Вопрос:
Я пытаюсь сделать цикл foreach для итерации по каждому элементу в массиве, но он только захватывает последний элемент и не перебирает первый элемент. Я удалил код, чтобы показывать только соответствующие части, и добавил некоторые команды, чтобы идентифицировать проблему, как описано выше.
$message == «kk,ll»; $myArray = explode(‘,’, $message); print_r ($myArray); foreach ($myArray as $value); { echo «$value <br>»; $array[] = $value; } print_r ($array);
Вывод:
Array ( [0] => kk [1] => ll ) ll Array ( [0] => ll )
Вы можете видеть, что когда я использую print_r(), массив содержит два элемента. Но цикл foreach только петли над последним элементом. Добавление элементов массива в новый массив внутри цикла также заканчивается массивом, содержащим только последний элемент. Что я делаю неправильно?
Лучший ответ:
У вас есть две ошибки в коде:
-
В вашей первой строке у вас есть два равных знака, которые должны быть только.
-
В вашем цикле foreach вы по ошибке поставили точку с запятой в конце:
foreach ($myArray as $value);
Выполняя это, цикл foreach будет запущен, но код внутри {} фактически помещен вне цикла foreach и тем самым вызывает $value только сохранение последнего элемента массива.
Код должен выглядеть так:
$message = «kk,ll»; $myArray = explode(‘,’, $message); print_r ($myArray); foreach ($myArray as $value) { echo «$value <br>»; $array[] = $value; } print_r ($array); Ответ №1
удалите ; после Foreach, как в следующем коде
foreach ($myArray as $value) { echo «$value <br>»; $array[] = $value; } Ответ №2
ваш foreach просто назначил значение $, но ничего не выводит. Это вызвано: после foreach, так же, как
foreach ($myArray as $value) {}
И после этого значение $имеет последний элемент $myArray, затем
{ echo «$value <br>»; $array[] = $value; }
выводит только последний элемент.
Ответ №3In Laravel Framework Use Code into Controller: $dd = $categories->pluck( ‘title’ )->toArray(); foreach ( $dd as $key => $value ) {<br /> $array[$key] = ‘.’ . $value;<br /> } <br /> $cat = implode( ‘,’ , $array ); <br /> // Result Display : James,Mark,Helmet…..