Php 如何通过连接将循环中的项包装到元素中?
我试图从循环中推送一些项以获得字符串 我有一个Php 如何通过连接将循环中的项包装到元素中?,php,loops,concatenation,Php,Loops,Concatenation,我试图从循环中推送一些项以获得字符串 我有一个$liste\u mots数组: 0 => array (size=5) 'mot' => array (size=7) 0 => array (size=5) 'mot' => string 'My' 'start' => float 0 'end
$liste\u 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>
MyNameIsZooboo
我做到了:
$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;
$response=”“;
foreach($key=>$item){
$response=“”;
foreach($idx=>itm){
$response.=''.$itm['mot'].'';
}
}
var_dump($response);死亡
但是有了一个var\u dump
,我只有最后一个div
,而没有span
我哪里错了?每次通过外部循环时,您都在重置
$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;
$response=”“;
foreach($key=>$item){
$response.=”;
foreach($idx=>itm){
$response.=''.$itm['mot'].'';
}
$response.=”;
}
var_dump($response);死亡
您在错误的循环中关闭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;
$response=”“;
foreach($key=>$item){
$response.=”;
foreach($idx=>itm){
$response.=''.$item['mot'].'';
}
$response.=”;
}
var_dump($response);死亡
你能粘贴var\u export($liste\u mot)
的输出吗?这样我们可以处理吗?我已经尝试过了,但是var\u dump返回我:字符串“”(长度=0)
只有在$liste\u mots
为空时才会发生。请确保启用了错误报告功能。您可能在某个地方键入了错误的变量。在本例中,$liste\u mots
不是空的,但在我的代码中,有时,$liste\u mots[$key]['mot']
是空的…如果$list\u mots
不是空的,我看不出该代码有任何方法可以返回空的$response
。我已经尝试过了,但是var\u dump返回我:字符串“”(长度=0)