PHP - Foreach循环只回显字符串的第一个字母

时间:2014-04-16 01:02:45

标签: php arrays foreach

我有一个如下所示的数组:

array(1) { 
    ["brookybear"]=> array(5) { 
        ["id"]=> int(20217894) 
        ["name"]=> string(10) "Brookybear" 
        ["profileIconId"]=> int(603) 
        ["summonerLevel"]=> int(30) 
        ["revisionDate"]=> float(1397388011000) 
    } 
}

当我的var_dump();它。我试图使用foreach循环来获取" name"超出它的价值。然而,当我回应它时,我只能得到" B"作为输出,而不是完整的Brookybear。

这是我的foreach循环:

$url="APIURL";
$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($array['brookybear'] as $champs)
{
echo $champs['name'];
}

3 个答案:

答案 0 :(得分:2)

看起来你正在循环'brookybear'项而不是父数组。

如果您想查看所有name的所有$champ

$array = json_decode($result, true);
foreach($array as $champs)
{
    echo $champs['name'];
}

或更清楚:

$champions = json_decode($result, true);
foreach($champions as $champ)
{
    echo $champ['name'];
}

答案 1 :(得分:0)

为什么使用循环来获取值?如果我这样做,我只会写:

<?php
if ( isset( $array['brookybear']['name'] ) ) {
    echo $array['brookybear']['name'];
}

答案 2 :(得分:0)

如果第一个字符只显示在字符串中,你知道我现在的原因是什么,

确保上面脚本中的数组变量名称不相同

。示例

$my_var = "My name is umair";

以下同样使用此变量作为数组

$my_var[0] = "My name is umair";

现在如果你回显数组var它将只显示输出中的第一个字母是“M” 只需更改数组变量就可以了。