为了账号安全,请及时绑定邮箱和手机立即绑定

在 foreach 循环中为 null 的情况下打印零

在 foreach 循环中为 null 的情况下打印零

PHP
牛魔王的故事 2021-10-08 14:35:37
此处显示了 php 代码foreach ($icx_json_date as $key_date => $icx_value_date) {        echo $icx_value_date["isd_out_traffic"] . ", ";    }此代码的输出是, , , , , , 14449.25, 881.50,我想用零替换空输出并将输出显示为0, 0, 0, 0, 0, 0, 14449.25, 881.50,应该做哪些改变才能做到这一点?
查看完整描述

3 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

使用简写条件运算符:


foreach ($icx_json_date as $key_date => $icx_value_date) {

    echo ($icx_value_date["isd_out_traffic"] ?: 0) . ", ";

}

x ?: yis xifx不为空,否则为y.


查看完整回答
反对 回复 2021-10-08
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

$key_date =>如果你不使用它,你可以完全省略不必要的。

你会有一个,通常不受欢迎的拖尾。

此外,如果数组键不存在,如果它将为 NULL(没有理由根据 php 设置填充日志),您也会收到警告。


我是“沉默”运算符的粉丝,而不是将 isset 与三元/条件运算符结合使用。然后,您可以简单地将类型转换为浮动,如下所示:


$out = [];

foreach ($icx_json_date as $icx_value_date) {

    $out[] = (float)@$icx_value_date['isd_out_traffic'];

}

echo implode(', ', $out);

如果你不想用任何变量污染当前范围,你可以用这样的东西变得更漂亮:


echo implode(', ',

    array_map(

        function($ar){ return (float)@$ar['isd_out_traffic']; },

        $icx_json_date

    )

);

?:不过,使用运算符可能会更快。


查看完整回答
反对 回复 2021-10-08
  • 3 回答
  • 0 关注
  • 171 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信