function timu_list($timulibiao)
{
$arrtimulibiao=explode("@", $timulibiao);
$arr = array();
$i=1;
$quanbu='';
foreach ($arrtimulibiao as $value) {
if($i<=count($arrtimulibiao))
{
$arrvalue=explode("//", $value);
$xuhao =$i+1;
$timu =$arrvalue[1];
$my_daan =$arrvalue[2];
$zq_daan =$arrvalue[3];
$duicuo =$arrvalue[4];
$dataFragment = $xuhao . '//' . $timu . '//' . $my_daan . '//' . $zq_daan . '//' . $duicuo;
$arr[$i]['xuhao'] =$xuhao;
$arr[$i]['timu'] =$timu;
$arr[$i]['my_daan'] =$my_daan;
$arr[$i]['zq_daan'] =$zq_daan;
$arr[$i]['duicuo'] =$duicuo;
$arr[$i]['quanbu'] =$dataFragment.'@';
$quanbu.=$dataFragment.'@';
$i++;
}
}
if (!empty($quanbu)) {
$arr['quanbu_z']=substr($quanbu, 0, -1);
}
return $arr;
}
$timu_list=timu_list($timulibiao);
$smarty->assign("timu_list", $timu_list);
$smarty->display('oa/oa_zxsxl_jieguo.htm');//这个循环传到这个页面
print_r($timu_list);exit;
测试打印出来是这样的:
Array ( [1] => Array ( [xuhao] => 2 [timu] => +9 -7 -2 [my_daan] => 2 [zq_daan] => 0 [duicuo] => × [quanbu] => 2//+9 -7 -2//2//0//×@ ) [2] => Array ( [xuhao] => 3 [timu] => +9 -7 -1 [my_daan] => 1 [zq_daan] => 1 [duicuo] => √ [quanbu] => 3//+9 -7 -1//1//1//√@ ) [quanbu_z] => 2//+9 -7 -2//2//0//×@3//+9 -7 -1//1//1//√ )
也就是这个循环里的数组多了一个$arr['quanbu_z'],但是这个又不能没有,请问要怎么弄才能只循环[1][2],不循环数组$arr['quanbu_z']
这个循环里的数组多了一个$arr['quanbu_z'],但是这个又不能没有,请问要怎么弄才能只循环[1][2],不循环数组$arr['quanbu_z']
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注引自免费微信小程序:皆我百晓生
为了解决这个问题,你可以在遍历数组前检查键名,确保不会处理
'quanbu_z'这个特殊键。在PHP中,你可以使用array_keys()函数获取数组的所有键名,然后通过in_array()函数检查当前键是否是我们想要排除的键。然而,更简单的方法是在循环时直接检查键名。下面是一个修改后的代码示例,它将排除
'quanbu_z'键,只处理数字键(即[1],[2], 等等):// 假设 $timu_list 已经由 timu_list() 函数返回 foreach ($timu_list as $key => $value) { // 检查 $key 是否为数字,从而排除 'quanbu_z' if (is_numeric($key)) { // 这里进行你需要的操作,例如访问 $value['xuhao'], $value['timu'] 等 echo "处理序号:{$value['xuhao']}, 题目:{$value['timu']}\n"; } }这样,你就可以只针对数字键进行操作,而跳过
'quanbu_z'。这不仅保持了'quanbu_z'的存在,还确保了它不会被错误地处理。如果你需要在HTML模板中处理这个逻辑,可以采用类似的条件判断,确保只渲染你想要的数据部分。例如,在Smarty模板引擎中,你可以使用
{foreach}标签,并结合条件语句来实现:{foreach from=$timu_list key=k item=i} {if is_numeric(k)} <!-- 这里显示 $i['xuhao'], $i['timu'] 等 --> <p>处理序号:{$i.xuhao}, 题目:{$i.timu}</p> {/if} {/foreach}这样,即使
$timu_list包含'quanbu_z'键,模板也只会渲染数字键对应的数据。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录