PHP使用foreach遍历价格数据时如何跳过0值且保留原有编号
实现方法
核心逻辑是遍历过程中不管价格是否需要展示,序列编号都按照原有顺序累计,仅跳过值为0的价格的输出步骤,两种常用写法如下:
写法1:直接使用数组原始索引生成编号(适用于默认0起始的连续索引数组)
<?php // 示例原始价格数组 $prices = [0, 100, 200, 300]; echo 'price' . PHP_EOL; // 遍历同时获取数组下标和价格值 foreach ($prices as $index => $price) { $no = $index + 1; // 价格为0直接跳过本次输出 if ($price === 0) { continue; } echo "No.{$no} = {$price}" . PHP_EOL; } ?>
写法2:独立计数器生成编号(适用于所有数组索引场景)
<?php $prices = [0, 100, 200, 300]; $no = 1; echo 'price' . PHP_EOL; foreach ($prices as $price) { if ($price !== 0) { echo "No.{$no} = {$price}" . PHP_EOL; } // 无论是否输出,编号都自增,保证和原有顺序一致 $no++; } ?>
两种写法运行后都会输出你需要的预期结果:
price No.2 = 100 No.3 = 200 No.4 = 300
内容的提问来源于stack exchange,提问作者Hardiyana Hardiyana
相关产品推荐
相关产品推荐

