首页 > 解决方案 > 第一行php之后数组行值是空白的

问题描述

我有一个奇怪的问题,在我遍历一个数组后,我可以从第一行获取所有第一个值,但在那一行之后,所有值都是空白的。

我有一个这样的数组(还有更多我只是缩短了它)

Array
(
    [data] => Array
        (
            [0] => Array
                (
                    [id] => 76
                )
            [1] => Array
                (
                    [id] => 77
                )
            [2] => Array
                (
                    [id] => 78
                )
        )
)

在我的 php 中,我使用

$result = json_decode(json_encode($result), true);
$i = 2;
for ($x = 0; $x <= $i; $x++) {
     // I do stuff here
}

如果我像下面那样循环遍历数组,第一个值进入但最后两个是空白的,所以我得到(76)

$result = json_decode(json_encode($result), true);
$i = 2;
for ($x = 0; $x <= $i; $x++) {
     echo $result['data'][$x]['id'];
}

所以我检查$x以确保值是正确的(0,1,2),它们回显为012

这就是奇怪的地方。如果我手动输入数字并echo获得所有三行的正确值

echo $result['data'][0]['id'];
echo $result['data'][1]['id'];
echo $result['data'][2]['id'];

从那,我得到767778

我到底做错了什么?

标签: phparrays

解决方案


你应该使用“sizeof”

for($i = 0; $i < sizeof($result['data']) ;$i++){
    echo $result['data'][$i]['id'];
}

o foreach 循环:

foreach($result['data'] as $data){
    echo $data['id'];
}

推荐阅读