#php
#php
Вопрос:
У меня есть foreach
цикл, который печатает значения двух переменных:
$Var1 = '';
$Var2 = '';
foreach($variable as $key => $value)
{
$Var1 .= $value->Id;
$Var2 .= $value->Name;
}
echo $Var1;
echo $Var2;
Если цикл выполняется 3 раза, результат:
Var1_value_1 Var1_value_2 Var1_value_3
Var2_value_1 Var2_value_2 Var2_value_3
Но я хочу следующее:
Var1_value_1 Var2_value_1 Var1_value_2 Var2_value_2 Var1_value_3 Var2_value_3
Комментарии:
1. Итак, грязный вопрос: (
2. Пожалуйста, прочитайте вопрос. просто хочу напечатать значение 1-й переменной другой, снова напечатать 1-ю переменную второй..
3. Что
$variable
содержит? Вы должны быть конкретны и предоставить адекватные детали, прежде чем ожидать, что кто-то решит это за вас!
Ответ №1:
If $variable
— это массив объектов со свойствами Id
и Name
, тогда вы можете распечатать его таким образом:
$a = [];
foreach ($variable as $key => $value) {
$a [] = $value->Id . ' ' . $value->Name;
}
echo implode(' ', $a);
где мы просто объединяем строки, помещаем их в $a
массив, а затем создаем конечную строку implode
.
Или даже таким образом:
echo implode(' ', array_map(function ($v) {
return $v->Id . ' ' . $v->Name;
}, $variable));
array_map
применяет обратный вызов для каждого элемента массива ( $v
). Обратный вызов возвращает измененный элемент, результат конкатенации. Наконец, элементы нового массива объединяются implode
.