Обернуть элемент из цикла в элемент с конкатенацией

Я пытаюсь вытолкнуть некоторые элементы из циклов, чтобы получить строку символов.

У меня есть массив $liste_mots :

  0 =>
array (size=5)
'mot' =>
array (size=7)
0 =>
array (size=5)
'mot' => string 'My'
'start' => float 0
'end' => float 1
1 =>
array (size=5)
'mot' => string 'Name'
'start' => float 2
'end' => float 3
'ID' => float 1

1 =>
array (size=5)
'mot' =>
array (size=7)
0 =>
array (size=5)
'mot' => string 'Is'
'start' => float 4
'end' => float 5
1 =>
array (size=5)
'mot' => string 'Zooboo'
'start' => float 6
'end' => float 7
'ID' => float 2

До здесь нет проблем …

То, что я пытаюсь получить, это что-то вроде этого:

<div id='1'><span data-start='0' data-end='1'>My</span><span data-start='2' data-end='3'>Name</span></div><div id='2'><span data-start='4' data-end='5'>Is</span><span data-start='6' data-end='7'>Zooboo</span></div>

Я это сделал :

$response = "";
foreach ($liste_mots as $key => $item) {
$response  = "<div id='" . $item['ID'] . "'>";
foreach ($liste_mots[$key]['mot'] as $idx => $itm) {
$response .= "<span data-start='".$itm['start']."' data-end='".$itm['end']."'>" . $itm['mot'] . "</span></div>";
}
}
var_dump($response); die;

но с var_dump У меня только последний div без span в…

Где я не прав пожалуйста? благодарю вас !

1

Решение

Вы сбрасываете $response каждый раз через внешний цикл. Там вам нужно использовать конкатенацию, как во внутреннем цикле. Вы также должны прекратить div во внешнем цикле, а не после каждого span во внутренней петле.

$response = "";
foreach ($liste_mots as $key => $item) {
$response .= "<div id='" . $item['ID'] . "'>";
foreach ($liste_mots[$key]['mot'] as $idx => $itm) {
$response .= "<span data-start='".$itm['start']."' data-end='".$itm['end']."'>" . $itm['mot'] . "</span>";
}
$response .= "</div>";
}
var_dump($response); die;
1

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

вы закрываете div в неправильном цикле

$response = "";
foreach ($liste_mots as $key => $item) {
$response  .= "<div id='" . $item['ID'] . "'>";
foreach ($liste_mots[$key]['mot'] as $idx => $itm) {
$response .= "<span data-start='".$itm['start']."' data-end='".$itm['end']."'>" . $item['mot'] . "</span>";
}
$response  .= "</div>";
}
var_dump($response); die;
1

А ты уже прошел курс программирования? Супер скидка!
Прокачать скилл $$$
×