为什么我的数组代码不起作用? php 5数组

时间:2017-03-06 03:17:55

标签: php arrays

我有这个嵌套数组,我需要来自该数组的一些元素,但由于某些原因我的代码不起作用。

当我使用var_dump时,我得到一个看起来像这样的数组

array(2) {
     ["item"] => array(1) {
         [0]=> array(3) {
             ["name"]=> string(10) "..."
             ["id"]=> string(16) "..."
             ["rs"]=> string(9) "attending"
          }
      }
     ["id"]=> string(15) "..."
}

例如,我想获取id和名称,因为我使用foreach

foreach($var as $key => $value){
    echo $key[0][0]; For name, but that displays nothing
}

我也用过

foreach($var as $key => $value){
    echo $key['item']['name']; Whenever i run this code i get an error "Cannot use string offset etc."
}

是的,我知道这是一个愚蠢的问题,但我的脑袋正在爆炸,所以请帮助我们。

编辑:

所以我试图得到' name'从使用foreach循环的数组,但我的代码不起作用。对不起,我不知道如何更好地解释自己。

尝试

foreach( $array as $key => $value )          
{ 
         echo $array[$key][0]["name"]; 
 }

但我仍然收到错误'非法字符串偏移'名称'

2 个答案:

答案 0 :(得分:1)

更新了评论

您正在错误地索引数组。

这是名称的正确索引:echo $ array [" item"] [0] [" name"];

更接近的解决方案是:

foreach( $array as $key => $value ){
    echo $array[$key][0]["name"];
}

但即使这样仍然是错误的。您需要为自己找出继续嵌套的逻辑。但问题的关键在于你误解了索引是什么。

"项目"是和索引。 0(整数0)是索引。 "名称"是一个索引。

echo $ key [0] [0]没有显示任何内容,因为它类似于输入:

" item" [0] [0]

根本没有引用数组。你需要$ array。

echo $ key [' item'] [' name'];不起作用是因为它没有引用$数组变量,并且没有引用实际承载信息的项目的索引0,其中" name"存在。

我需要有关您使用的数据的更多信息,以提供完整正确的答案。

我怀疑一个完整而完整的答案看起来与这两个循环中的一个类似:

foreach( $array as $key => $value ){
    if ($key == "item")
    {
        echo $array[$key][0]["name"];
    }
}


foreach( $array as $key => $value ){
    if ($key == "item")
    {
        foreach( $array[$key] as $key2 => $value2 )
        echo $array[$key][$key2]["name"];
    }
}

`

原始评论

我无法发表评论,那是一个错字吗?

foreach($ var as $ key = $ value)

应该是

foreach($ var as $ key => $ value)

根据手册:http://php.net/manual/en/control-structures.foreach.php

答案 1 :(得分:0)

我认为您的代码有问题。试试这个:

foreach($array as $key => $value) {
    echo $value[$key][0]["name"];
}