@Vlad_beg

Как объеденить все в один цикл foreach?

Подскажите, как правильно объеденить данные три цикла в один цикл foreach

foreach($titles as $title) {
	echo "<b>Title: </b>".$titles[0]."<br/>";
	
}

foreach($prices as $price) {
	echo "<b>Price: </b>".$price[0]."<br/>";
}

foreach($description as $descript) {
	echo "<b>Description: </b>".$descript[0];
}
  • Вопрос задан
  • 172 просмотра
Решения вопроса 1
saboteur_kiev
@saboteur_kiev
software engineer
Никак, это три разных набора данных, следовательно они не должны объединяться в один цикл.
Если наборы данных должны соответствовать друг другу, типа title1 -> price1 -> description1, то они должны храниться либо в одном массиве, как структура, либо в разных массивах, но с общим уникальным индексом.
пример на псевдоязыке
вариант 1:
array (
(title1, price1, description1),
(title2, price2, description2),
)

вариант 2:
(
1 -> title1,
2 -> title2,
)
(
1 -> price1,
2 -> price2,
)
(
1 -> description1,
2 -> description2,
)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
через array_map
function createArray($t,$p,$d){
return ['title'=>$t[0],'price'=>$p[0],'description'=>$d[0]];
}
$all_array = array_map("createArray", $titles , $prices,$description);
foreach($all_array as $item){
  echo "<b>title: </b>".$item['title']."<br/>";
  echo "<b>price: </b>".$item['price']."<br/>";
  echo "<b>description: </b>".$item['description']."<br/>";
}

или если количество записей во всех массивах совпадает, то можно так:
$array = ['Title'=>$titles,'Price'=>$prices,'Description'=>$description];
foreach($array as $title=>$one) {
foreach($one as $item){
  echo "<b>".$title.": </b>".$item[0]."<br/>";
}
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы