Php foreach no results

массивы — PHP получает результат из цикла foreach

Я пытаюсь вывести это за пределы цикла, когда я пытаюсь отобразить результат, у меня есть только Джон, что я должен сделать, чтобы получить все три имени?

Я пытался создать массив, как

$resultData= array(); foreach($results as $result) < $resultData = $result['names']; >echo $resultData; 

Это не работает, у кого-нибудь есть предложения?

Обновленный вопрос:
Когда я пытаюсь var_dump($resultData) я получаю

string(7) "John" string(7)"Fred" string(7)"Ann"

Решение

$employeeAges; $employeeAges["Lisa"] = "28"; $employeeAges["Martin"] = "16"; $employeeAges["Erik"] = "35"; $employeeAges["Victor"] = "46"; $employeeAges["Grace"] = "34"; foreach( $employeeAges as $key => $value)< echo "Name: $key, Age: $value 
"; >

Выход
Имя: Лиза, Возраст: 28
Имя: Мартин, Возраст: 16
Имя: Эрик, Возраст: 35
Имя: Виктор, Возраст: 46
Имя: Грейс, Возраст: 34

Вы можете сделать это так же:

синтаксис foreach: ** $ что-то как $ ключ => $ значение
Для каждого элемента ассоциативного массива $ employeeAges я хочу обозначить ключ как $ ключ и значение как $ значение.

$employeeAges; $employeeAges["Lisa"] = "28"; $employeeAges["Martin"] = "16"; $employeeAges["Erik"] = "35"; $employeeAges["Victor"] = "46"; $employeeAges["Grace"] = "34"; foreach( $employeeAges as $name => $age)< echo "Name: $name, Age: $age 
"; >

Оператор «=>» представляет отношение между ключом и значением. Вы можете себе представить, что ключ указывает на значение>. В нашем примере мы назвали ключ $ ключ и значение $ значение. Тем не менее, это может быть проще думать об этом имя $ а также $ возраст. Ниже наш пример делает это и замечает, как выходные данные идентичны, потому что мы изменили только имена переменных, которые ссылаются на ключи и значения.

Читайте также:  Пример простой страницы html

Вы все еще получаете тот же результат.

Выход
Имя: Лиза, Возраст: 28
Имя: Мартин, Возраст: 16
Имя: Эрик, Возраст: 35
Имя: Виктор, Возраст: 46
Имя: Грейс, Возраст: 34

Другие решения

foreach($results as $result) < $resultData[] = $result['your_value']; >print_r($resultData); echo $resultData[0]; 

Вот правильный код. Вы не заявили, что я правильно

$resultData= array(); $i = 0; foreach($results as $result) < $resultData[$i] = $result['names']; $i++ >//for single echo $resultData[0]; //for whole print_r($resultData); 

попробуй использовать explode в цикле foreach

 foreach($results as $result) < $result = explode(",",$result['names']); >print_r($result); 

если у вас есть единственное имя в $ result, тогда взорвите его с помощью «,» и взорвите его

 foreach($results as $result) < $val = implode(",",$result['names']); >$value = explode(","$val); print_r($value[0]); 
 $resultData= array();` foreach($results as $key => $result) < $resultData[$key] = $result['names']; >echo "
", print_r($resultData, true); 

Да, я получил это работает, это код. Всем спасибо.

 $results; $results[0]; $results[1]; $results[2]; $t = array(); foreach($results as $key => $value) < $t[]= $value['name']; >$a = "'".implode("','", $t)."'"; echo $a; 

Источник

foreach

Конструкция foreach предоставляет простой способ перебора массивов. Foreach работает только с массивами и объектами, и будет генерировать ошибку при попытке использования с переменными других типов или неинициализированными переменными. Существует два вида синтаксиса:

foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement

Первый цикл перебирает массив, задаваемый с помощью array_expression. На каждой итерации значение текущего элемента присваивается переменной $value и внутренний указатель массива увеличивается на единицу (таким образом, на следующей итерации цикла работа будет происходить со следующим элементом).

Второй цикл будет дополнительно соотносить ключ текущего элемента с переменной $key на каждой итерации.

Замечание:

Когда оператор foreach начинает исполнение, внутренний указатель массива автоматически устанавливается на первый его элемент Это означает, что нет необходимости вызывать функцию reset() перед использованием цикла foreach.

Так как оператор foreach опирается на внутренний указатель массива, его изменение внутри цикла может привести к непредсказуемому поведению.

Для того, чтобы напрямую изменять элементы массива внутри цикла, переменной $value должен предшествовать знак &. В этом случае значение будет присвоено по ссылке.

$arr = array( 1 , 2 , 3 , 4 );
foreach ( $arr as & $value ) $value = $value * 2 ;
>
// массив $arr сейчас таков: array(2, 4, 6, 8)
unset( $value ); // разорвать ссылку на последний элемент
?>

Указатель на $value возможен, только если на перебираемый массив можно ссылаться (т.е. если он является переменной). Следующий код не будет работать:

Ссылка $value на последний элемент массива остается даже после того, как оператор foreach завершил работу. Рекомендуется уничтожить ее с помощью функции unset() .

Замечание:

Оператор foreach не поддерживает возможность подавления сообщений об ошибках с помощью префикса '@'.

Вы могли заметить, что следующие конструкции функционально идентичны:

$arr = array( "one" , "two" , "three" );
reset ( $arr );
while (list(, $value ) = each ( $arr )) echo "Значение: $value
\n" ;
>

foreach ( $arr as $value ) echo "Значение: $value
\n" ;
>
?>

Следующие конструкции также функционально идентичны:

$arr = array( "one" , "two" , "three" );
reset ( $arr );
while (list( $key , $value ) = each ( $arr )) echo "Ключ: $key ; Значение: $value
\n" ;
>

foreach ( $arr as $key => $value ) echo "Ключ: $key ; Значение: $value
\n" ;
>
?>

Вот еще несколько примеров, демонстрирующие использование оператора:

foreach ( $a as $v ) echo "Текущее значение переменной \$a: $v .\n" ;
>

/* Пример 2: значение (для иллюстрации массив выводится в виде значения с ключом) */

$i = 0 ; /* только для пояснения */

foreach ( $a as $v ) echo "\$a[ $i ] => $v .\n" ;
$i ++;
>

$a = array(
"one" => 1 ,
"two" => 2 ,
"three" => 3 ,
"seventeen" => 17
);

foreach ( $a as $k => $v ) echo "\$a[ $k ] => $v .\n" ;
>

/* Пример 4: многомерные массивы */
$a = array();
$a [ 0 ][ 0 ] = "a" ;
$a [ 0 ][ 1 ] = "b" ;
$a [ 1 ][ 0 ] = "y" ;
$a [ 1 ][ 1 ] = "z" ;

foreach ( $a as $v1 ) foreach ( $v1 as $v2 ) echo " $v2 \n" ;
>
>

/* Пример 5: динамические массивы */

foreach (array( 1 , 2 , 3 , 4 , 5 ) as $v ) echo " $v \n" ;
>
?>

Распаковка вложенных массивов с помощью list()

В PHP 5.5 была добавлена возможность обхода массива массивов с распаковкой вложенного массива в переменные цикла, передав list() в качестве значения.

foreach ( $array as list( $a , $b )) // $a содержит первый элемент вложенного массива,
// а $b содержит второй элемент.
echo "A: $a ; B: $b \n" ;
>
?>

Результат выполнения данного примера:

Можно передавать меньшее количество элементов в list() , чем находится во вложенном массиве, в этом случае оставшиеся значения массива будут проигнорированы:

foreach ( $array as list( $a )) // Обратите внимание на отсутствие $b.
echo " $a \n" ;
>
?>

Результат выполнения данного примера:

Если массив содержит недостаточно элементов для заполнения всех переменных из list() , то будет сгенерировано замечание об ошибке:

foreach ( $array as list( $a , $b , $c )) echo "A: $a ; B: $b ; C: $c \n" ;
>
?>

Результат выполнения данного примера:

Notice: Undefined offset: 2 in example.php on line 7 A: 1; B: 2; C: Notice: Undefined offset: 2 in example.php on line 7 A: 3; B: 4; C:

Источник

Изучаем цикл foreach PHP: два способа его использования

Цикл foreach PHP можно использовать следующим образом:

foreach($array_name as $value)< //код, который должен выполняться >
foreach($array_name as $key =>$value)< // //код, который должен выполняться >

Как цикл foreach PHP работает с числовым массивом

В этом примере мы создадим массив из пяти элементов с числовыми значениями. После этого цикл foreach PHP будет использован для выполнения итерации этого массива. Внутри цикла foreach мы использовали echo , чтобы вывести значения массива:

Как цикл foreach PHP работает с числовым массивом

Посмотреть демо-версию и код

Цикл foreach PHP - примеры с ключами и значениями массива

В этом примере описан другой способ использования цикла foreach PHP . Для этого мы создали ассоциативный массив из трех элементов. В него входят имена сотрудников ( в качестве ключей ) и суммы заработной платы ( в качестве значений ):

Цикл foreach PHP - примеры с ключами и значениями массива

Посмотреть демо-версию и код

Цикл foreach PHP - примеры изменения значения элемента массива

Также c помощью php foreach array можно изменять значения элементов массива. Для этого используется " & " перед " $ " для переменной значения. Например:

Значение будет изменено. Чтобы вам было понятнее, рассмотрим следующий пример.

В этом примере мы создали числовой массив из пяти элементов. После этого использовали цикл foreach для отображения значений элементов.

Затем создали еще один цикл foreach , где перед $value_of_element добавляется " & ". Внутри фигурных скобок присваиваем новые значения элементам массива.

Чтобы увидеть разницу до и после присвоения новых значений, массив отображается с помощью функции print_r() .

Цикл foreach PHP - примеры изменения значения элемента массива

Посмотреть демо-версию и код

Для чего используется цикл foreach PHP?

Цикл foreach PHP используется для работы с массивом. Он перебирает каждый его элемент.

Также можно использовать для работы с массивами цикл for . Например, используя свойство length , чтобы получить длину массива, а затем применить его в качестве оператора max . Но foreach делает это проще, так как он предназначен для работы с массивами.

Если вы работаете с MySQL , то для этого данный цикл подходит еще больше. Например, можно выбрать несколько строк из таблицы БД и передать их в массив. После этого, используя цикл foreach , перебрать все элементы массива с выполнением какого-либо действия.

Обратите внимание, что можно использовать цикл foreach с массивом или только с объектом.

Как применять цикл foreach PHP

В PHP существует два способа использовать цикл foreach PHP. Оба описаны ниже.

foreach($array_name as $value)

При этом нужно указать имя массива, а затем переменную $value .

Для каждой итерации значение текущего элемента присваивается переменной $value . После завершения итерации переменной присваивается значение следующего элемента. И так до тех пор, пока все элементы массива не будут перебраны.

foreach ($array_name as $key_of_element => $value_of_element)< //code to be executed here >

Это подходит для ассоциативных массивов, в которых используются пары ключ / значение.

Во время выполнения каждой итерации значение текущего элемента будет присвоено переменной $value_of_element. Кроме этого ключ элемента присваивается переменной $key_of_element.

Если вы работаете с числовыми массивами, то можно использовать первый метод, в котором не нужны ключи элементов.

Источник

Цикл foreach

Цикл foreach предоставляет простой способ перебора массивов. Он работает только с массивами и объектами и будет генерировать ошибку в случае его использования с переменными других типов или неинициализированными переменными.

Синтаксис foreach

Есть два вида синтаксиса для данного цикла. Первый вид синтаксиса цикла foreach выглядит следующим образом:

Цикл перебирает заданный массив $array . На каждой итерации значение текущего элемента присваивается переменной $value и внутренний указатель массива увеличивается на единицу (таким образом, на следующей итерации цикла работа будет происходить со следующим элементом).

Посмотрим, как он работает на примере:

Пример

 $colors = array("red", "green", "blue", "yellow");

foreach ($colors as $value) echo "$value
";
>
?>

Результат выполнения кода:

Когда мы запускаем цикл, PHP берёт первое значение массива "red" и помещает его в переменную $value . Затем один раз выполняется блок кода echo $value; . Затем PHP делает тоже самое со вторым значением, третьим и т.д.

Получается, команды, принадлежащие циклу foreach , будут запущены для каждого элемента отдельно.

Добавим несколько команд, поместив их в фигурные скобки. Попробуем вывести названия товаров, цена которых выше 99:

Пример

 $products[] = ['name' => 'Товар1', 'price' => 99]; 
$products[] = ['name' => 'Товар2', 'price' => 199];
$products[] = ['name' => 'Товар3', 'price' => 299];

foreach($products as $product) if($product['price'] > 99)
echo $product['name'] . '
';
>
?>

Результат выполнения кода:

Второй вид синтаксиса foreach

Второй вид синтаксиса foreach выглядит так:

При использовании данной формы синтаксиса foreach на каждой итерации цикла дополнительно присваивается значение текущего ключа переменной $key .

Пример

 $my_arr = array(10, 15, 20);

foreach ($my_arr as $key => $value) echo $key, ' ', $value, "
";
>
?>

Результат выполнения кода:

Источник

Оцените статью