У меня есть первичный массив
{
"results": [
{
"question": "Ты кто?",
"answer": "Вася",
"topic": [
"Имя"
]
},
{
"question": "Сколько лет?",
"answer": "5",
"topic": [
"Возраст"
]
}
}
Задача стоит в том, что бы вывести сначала Имя, потом Вопрос и Ответ
Но если я напишу вложенный foreach то оно выведет сначала все данные массива Вопрос и Ответ циклом, а только потом Имя, тоже происходит если выводить каждый элемент отдельно, а потом делать конкатенацию типо $q.$q2
Поэтому я написал подобный код
$qan1 = []; $qan2 = []; $qan3 = []; $qan5 = '';
foreach ($data['results'] as $repository2){ foreach ($repository2['topic'] as $repository3){
$qan3[] = $repository3;}
$qan1[] = $repository2['question'];
$qan2[] = $repository2['answer'];}
$qan4 = array($qan3,$qan1,$qan2);
foreach ($qan4 as $repos):
$qan5 .= '<dt><span>'.$repos[0].'</span><div class="acc-icon-wrap parallax-wrap"><div class="acc-button-icon parallax-element"><i class="fa fa-angle-down"></i></div></div></dt><dd class="accordion-content"><h3>Question</h3><dd>'.$repos[1].'</dd><h3>Answer</h3><dd>'.$repos[2].'</dd></div>';
endforeach;
return $qan5;
В котором я вывожу все элементы в массивы и делаю их общий массив
в $qan4 у меня получается нечто подобное
(
[0] => Array
(
[0] => Имя
[1] => Возраст
)
[1] => Array
(
[0] => Ты кто?
[1] => Сколько лет?
)
[2] => Array
(
[0] => Вася
[1] => 5
)
)
Но когда я делаю эту часть кода начинается проблема
foreach ($qan4 as $repos):
$qan5 .= '<dt><span>'.$repos[0].'</span><div class="acc-icon-wrap parallax-wrap"><div class="acc-button-icon parallax-element"><i class="fa fa-angle-down"></i></div></div></dt><dd class="accordion-content"><h3>Question</h3><dd>'.$repos[1].'</dd><h3>Answer</h3><dd>'.$repos[2].'</dd></div>';
endforeach;
return $qan5;
Потому что вместо вывода всех значений массива в $repos[0] оно выводит только Вася, а потом $repos[1] Сколько лет - вообще некорректно и я не понимаю как это исправить
потому что если я пишу скажем так
($qan4[0] as $reposit) : echo $reposit; endforeach;
то выводит все элементы ключа правильно