我正在foreach
循环中显示多余的项目。我无法在下面找到我特定代码的答案:
<?php
if(count($catArr['details'][$id])>0){
$ik=1;
foreach($catArr['details'][$id] as $pv=>$pArr){
if($ik == count($catArr['details'][$id])){
echo '<a class="set_color2 linehigh4 w_600 s_1-3" href="/products.php?pid='.$pArr['pid'].'&cid='.$pArr['cid'].'&p_id='.$pArr['id'].'">'.$pArr['pname'].'</a>';
}else{
echo '<a class="set_color2 linehigh4 w_600 s_1-3" href="/products.php?pid='.$pArr['pid'].'&cid='.$pArr['cid'].'&p_id='.$pArr['id'].'">'.$pArr['pname'].' </a>';
}//end if
$ik++;
}
}
?>
下面的浏览器中呈现的HTML只是一个片段,其中将中间的href展示为问题区域,该区域未提供任何元素,但仍在浏览器中显示为空链接[查看随附的图像***]:-
<a class="set_color2 linehigh4 w_600 s_1-3" href="/products.php?pid=34&cid=38&p_id=17">347 </a>
<a class="set_color2 linehigh4 w_600 s_1-3" href="/products.php?pid=34&cid=39&p_id="> </a>
<a class="set_color2 linehigh4 w_600 s_1-3" href="/products.php?pid=34&cid=40&p_id=18">409 </a>
图片附件*** [[https://drive.google.com/file/d/1HEJKFOALSMDAuuRF_0KcgXVlUYmkFAaA/view?usp=sharing]
答案 0 :(得分:0)
问题出在数组中。您在与“ id”和“ pname”相对应的字段中具有空值或空值。 您应该首先避免将它们放在数组中,但是如果您不能帮助,则请在循环内进行null检查以跳过该项目。
这是一个带有一些重构的代码段,以阐明其功能,因为唯一的区别是最后一项的额外空白。
<?php
if(count($catArr['details'][$id]) > 0){
$ik=1;
$count = count($catArr['details'][$id]);
$space = '';
foreach($catArr['details'][$id] as $pv => $pArr){
if($ik == $count){
$space = ' ';
}
if($pArr['id'] != null && $pArr['pname'] != null){
echo '<a class="set_color2 linehigh4 w_600 s_1-3" href="/products.php?pid='.$pArr['pid'].'&cid='.$pArr['cid'].'&p_id='.$pArr['id'].'">'.$pArr['pname'] . $space . '</a>';
}
$ik++;
}
}
?>