猿问

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

此处显示了 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,

应该做哪些改变才能做到这一点?


牛魔王的故事
浏览 172回答 3
3回答

30秒到达战场

使用简写条件运算符:foreach ($icx_json_date as $key_date => $icx_value_date) {    echo ($icx_value_date["isd_out_traffic"] ?: 0) . ", ";}x ?: yis xifx不为空,否则为y.

人到中年有点甜

$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    ));?:不过,使用运算符可能会更快。
随时随地看视频慕课网APP
我要回答