我有两个阵列:
$arrInfoComment;
数组包含注释用户的ID和注释。 (例如:2条评论)
$arrInfoExpert;
Array包含用户ID。 (3位用户)
我用foreach循环数组并将它们打印出来。
如果用户没有评论,我如何设置空<td>-</td>
?
$expComm = '';
foreach($arrInfoComment as $comExperts){
foreach($arrInfoExpert as $ExpertID){
if($comExperts['ID'] == $ExpertID){
$expComm .= '<td><p>'.$comExperts['COMMENT'].'</p></td>';
}
}
}
echo $expComm;
$ arrInfoComment的结构
Array
(
[0] => Array
(
[ID] => 5
[COMMENT] => Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vestibulum elementum libero, at laoreet risus sodales at. .
)
[1] => Array
(
[ID] => 3
[COMMENT] => Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vestibulum elementum libero, at laoreet risus sodales at. .
)
)
$ arrInfoExpert的结构
Array
(
[0] => 5
[1] => 3
[2] => 4
)
附上我想要实现的最后结果的截图。 感谢。
答案 0 :(得分:0)
试试这个
$expComm .= '<td><p>'.(!empty($comExperts['COMMENT']) ? $comExperts['COMMENT'] : '-').'</p></td>';
你可以使用三元运算符,如果注释为空则打印' - '否则注释
答案 1 :(得分:0)
使用此
foreach($arrInfoComment as $comExperts)
{
foreach($arrInfoExpert as $ExpertID)
{
if($comExperts['ID'] == $ExpertID)
{
if(empty($comExperts['COMMENT']))
{
$expComm .= '<td><p> — </p></td>';
}
else
{
$expComm .= '<td><p>'.$comExperts['COMMENT'].'</p></td>';
}
}
}
}
echo $expComm;
答案 2 :(得分:0)
我现在看到了这个问题。你应该翻转foreach循环的顺序。首先循环专家然后循环评论。
试试这个?$expComm = '';
foreach($arrInfoExpert as $expertID){
$comment = '-';
foreach($arrInfoComment as $comExperts){
if ($comExperts['ID'] == $expertID){
$comment = '<p>'.$comExperts['COMMENT'].</p>;
break;
}
}
$expComm .= "<td>$comment</td>";
}