Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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数组foreach循环,带有;其中;属性_Php_Arrays_Json_Foreach - Fatal编程技术网

Php JSON数组foreach循环,带有;其中;属性

Php JSON数组foreach循环,带有;其中;属性,php,arrays,json,foreach,Php,Arrays,Json,Foreach,我有一个直接来自API的JSON数组,其中一部分如下所示: { "type": "champion", "version": "4.4.3", "data": { "Aatrox": { "id": "Aatrox", "key": "266", "name": "Aatrox", "title": "the Darkin Blade",

我有一个直接来自API的JSON数组,其中一部分如下所示:

{
    "type": "champion",
    "version": "4.4.3",
    "data": {
        "Aatrox": {
            "id": "Aatrox",
            "key": "266",
            "name": "Aatrox",
            "title": "the Darkin Blade",
            "stats": {
                "armor": 14.0,
                "armorperlevel": 3.8,
                "attackdamage": 55.0,
                "attackdamageperlevel": 3.2,
                "attackrange": 150.0,
                "attackspeedoffset": -0.04,
                "attackspeedperlevel": 3.0,
                "crit": 0.0,
                "critperlevel": 0.0,
                "hp": 395.0,
                "hpperlevel": 85.0,
                "hpregen": 5.75,
                "hpregenperlevel": 0.5,
                "movespeed": 345.0,
                "mp": 30.0,
                "mpperlevel": 45.0,
                "mpregen": 0.0,
                "mpregenperlevel": 0.0,
                "spellblock": 30.0,
                "spellblockperlevel": 1.25
            }
        },
$url="api_url_blah";
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL,$url);
$result=curl_exec($ch);
$array = json_decode($result, true);
然后它会对其他所有冠军重复这一点。我使用cURL将其转换为PHP数组,如下所示:

{
    "type": "champion",
    "version": "4.4.3",
    "data": {
        "Aatrox": {
            "id": "Aatrox",
            "key": "266",
            "name": "Aatrox",
            "title": "the Darkin Blade",
            "stats": {
                "armor": 14.0,
                "armorperlevel": 3.8,
                "attackdamage": 55.0,
                "attackdamageperlevel": 3.2,
                "attackrange": 150.0,
                "attackspeedoffset": -0.04,
                "attackspeedperlevel": 3.0,
                "crit": 0.0,
                "critperlevel": 0.0,
                "hp": 395.0,
                "hpperlevel": 85.0,
                "hpregen": 5.75,
                "hpregenperlevel": 0.5,
                "movespeed": 345.0,
                "mp": 30.0,
                "mpperlevel": 45.0,
                "mpregen": 0.0,
                "mpregenperlevel": 0.0,
                "spellblock": 30.0,
                "spellblockperlevel": 1.25
            }
        },
$url="api_url_blah";
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL,$url);
$result=curl_exec($ch);
$array = json_decode($result, true);
从那里,我做了一个foreach循环,列出所有冠军和他们的“盔甲”属性,但是盔甲不会显示,但冠军的名字会显示:

$i = 1;
foreach($array['data'] as $champs)
{

echo $champs['id']. "<br>";

    foreach($champs['stats'] as $stats) {
        echo $stats['armor'];
    }

$i++;
}

您不需要第二个
foreach
循环。以下代码应该可以工作:

$i = 1;
foreach($array['data'] as $champs){
echo $champs['id'] . "<br/>" . $champs['stats']['armor'] . "<br/>";
$i++;
}
$i=1;
foreach($champs形式的数组['data']{
echo$champs['id']。“
”。$champs['stats']['armor']。”
; $i++; }
@zerkms
var_dump()
到底是什么?
stats
不是每个变量的
数据的子数组
@user1895377:如果你没有任何特别的怀疑,我的坏,不容易解码jsoneye@user1895377:哦,我的天啊。停止猜测,检查您拥有的实际数据。您对
$champs['stats']
有疑问吗?检查一下。混淆了
$stats
中的内容吗?检查一下。编程是事实,而不是信念。@andrew我不知道。也许问题的作者需要它来计算迭代次数。但是他/她应该以
$i=0
开头。