我正试图从循环中推送一些项以获得字符串。
我有一个$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
,我只有最后一个没有span
的div
。。。
我哪里错了?
每次通过外循环重置$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;
您在错误的循环中关闭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;