更改数组内容以更正NULL api返回

  • 本文关键字:NULL api 返回 数组 php
  • 更新时间 :
  • 英文 :


首先,代码:

for($j = 0; $j < 5; $j++) {
$rgames[$j] = array();
    for($i = 0; $i < 10; $i++) {
            array_push($rgames[$j], array($json[$j]->games[$i]->stats->championsKilled, $json[$j]->games[$i]->stats->numDeaths));
    }};

json[0]到[4]包含5个数组,其中包含10个以上的数组,用于每个玩家过去10场游戏的数据。从上面的代码中,所有的东西都被正确地提取和组织起来,这是一个小问题。为了带宽的利益,我使用的API只返回非空值,所以我在这里和那里使用了一些NULL。我需要找到这些并将其更改为零,这样我就有了合适的显示内容,这样我的错误日志就不会再对我抱怨了。

我希望我已经提供了足够的信息。我大约两周前才学会PHP,所以我仍在努力掌握它的窍门。谢谢你提供的任何信息!

编辑:下面答案中的最终代码。

如果我理解正确,$json[$j]->games[$i]->stats->championsKilled$json[$j]->games[$i]->stats->numDeaths是有时会变成null的变量吗?如果是这样,您可以检查null并设置0。

/* shorthand if/else in array */
array_push($rgames[$j], array(
    (isset($json[$j]->games[$i]->stats->championsKilled)) ? $json[$j]->games[$i]->stats->championsKilled : 0, 
    (isset($json[$j]->games[$i]->stats->numDeaths)) ? $json[$j]->games[$i]->stats->numDeaths : 0
));

或者,如果变量应该是整数,则可以使用intval将它们转换为整数。如果它们已经是整数,则没有任何变化。如果它们为null或为空,则变为0。

array_push($rgames[$j], array(
    intval($json[$j]->games[$i]->stats->championsKilled), 
    intval($json[$j]->games[$i]->stats->numDeaths)
));

在更改了@Samutz的一些代码后,我能够想出最后一个代码:

for($j = 0; $j < 5; $j++) {
$rgames[$j] = array();
    for($i = 0; $i < 10; $i++) {
            array_push($rgames[$j], array(isset($json[$j]->games[$i]->stats->championsKilled) ? $json[$j]->games[$i]->stats->championsKilled : 0, isset($json[$j]->games[$i]->stats->numDeaths) ? $json[$j]->games[$i]->stats->numDeaths : 0, isset($json[$j]->games[$i]->stats->assists) ? $json[$j]->games[$i]->stats->assists : 0, empty($json[$j]->games[$i]->stats->win) ? "Loss" : "Win"));
}};

谢谢大家!

最新更新