Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP json encode foreach仅循环第一项_Php_Json - Fatal编程技术网

PHP json encode foreach仅循环第一项

PHP json encode foreach仅循环第一项,php,json,Php,Json,所以我正忙着创建一个系统。 该系统生成一点JSON 例如: { "Builds": [ { "title": "test", "item1": "3", "item2": "3", "item3": "0", "item4": "0", "item5": "0", "item6": "0"

所以我正忙着创建一个系统。 该系统生成一点JSON

例如:

{
    "Builds": [
        {
            "title": "test",
            "item1": "3",
            "item2": "3",
            "item3": "0",
            "item4": "0",
            "item5": "0",
            "item6": "0"
        },
        {
            "title": "test2",
            "item1": "3",
            "item2": "3",
            "item3": "2",
            "item4": "0",
            "item5": "0",
            "item6": "0"
        }
    ]
}
现在,我试图用PHP中的foreach来获取每个“构建”,这只是第一次循环,然后什么也不做

$i = 0;

foreach($builds as $build){
    //echo $i;
    echo $build[$i]['title'];
    echo '<img src="' . $build[$i]['item1'] . '" alt=""></img>';
    $i++;
}
$i=0;
foreach($buildas$build){
//echo$i;
echo$build[$i]['title'];
回声';
$i++;
}

由于for循环,您不需要计数器

$json = '{"Builds":[{"title":"test","item1": "3","item2": "3","item3": "0","item4": "0","item5": "0","item6": "0"},{"title":"test2","item1": "3","item2": "3","item3": "2","item4": "0","item5": "0","item6": "0"}]}';
$data = json_decode($json, true);
$builds = $data['Builds'];
foreach($builds as $build){
    echo $build['title'];
    echo '<img src="' . $build['item1'] . '" alt=""></img>';
}
$json='{“Builds”:[{“title”:“test”,“item1”:“3”,“item2”:“3”,“item3”:“0”,“item4”:“0”,“item5”:“0”,“item6”:“0”},{“title”:“test2”,“item1”:“3”,“item2”:“3”,“item3”:“2”,“item4”:“0”,“item5”:“0”,“item6”:“0”});
$data=json_decode($json,true);
$builds=$data['builds'];
foreach($buildas$build){
echo$build['title'];
回声';
}
如果您希望迭代构建中的item元素,那么使用计数器的唯一原因是

for ($i = 1; isset($build['item' . $i]); $i++) {
    echo '<img src="' . $build['item' . $i] . '" alt=""></img>';
}
for($i=1;isset($build['item'.$i]);$i++){
回声';
}

这是一个工作版本

$builds = '{"Builds":[{"title":"test","item1": "3","item2": "3","item3": "0","item4": "0","item5": "0","item6": "0"},{"title":"test2","item1": "3","item2": "3","item3": "2","item4": "0","item5": "0","item6": "0"}]}';

foreach(json_decode( $builds )->Builds as $build ){
    echo $build->title;
    echo '<img src="' . $build->item1 . '" alt=""></img>';
}
$builds='{“builds”:[{“title”:“test”,“item1”:“3”,“item2”:“3”,“item3”:“0”,“item4”:“0”,“item5”:“0”,“item6”:“0”},{“title”:“test2”,“item1”:“3”,“item2”:“3”,“item3”:“2”,“item4”:“0”,“item5”:“0”,“item6”:“0”});
foreach(json_解码($builds)->构建为$build){
echo$build->title;
回显“项目1”。“alt=”“>”;
}

首先,您需要使用json解码对象
Builds
进行迭代。这将为您提供要显示的对象,如
$build->title

您正在处理一个对象数组。您应该这样做:

<?php

$json = ""; //your JSON string
$obj = json_decode($json);
foreach ($obj->Builds as $build) {
    echo $build->title;
    echo "<img src='$build->item1' alt=''>";
}

?>

为什么要使用计数器?扔掉它。
echo$build['title'];
etc@JohnCondejson文件让我使用计数器。除非我使用另一个json结构。但这仍然不是我问题的答案,关于如何解决它。因为我觉得奇怪,它只循环一次。应该是
foreach($builds)['Builds']as$build){
`如果我在没有coutner的情况下这样做,它仍然不起作用。我得到一个未定义的索引错误。可能需要
foreach($Builds['Builds']
如果出现未定义的索引错误,$build变量不包含您发布的json的内容-如果您尝试我的代码,您会发现它确实有效吗?
$build['item1']
是一个对象:
$build->item1
$build->title
$data->Builds
@HasseBjörk json_decode作为第二个参数,这表明返回值是一个assoc数组,它们不是对象,尽管我使用了json_decode($Builds,true)只有数组作为返回值返回,我在您的示例中没有看到这一点……好吧,这确实有效!我使用json_decode($build,true),它只返回数组:)