Печать значений, разделенных пробелом

#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 .