【问题标题】:How to access multidimensional array with php [duplicate]如何使用php访问多维数组[重复]
【发布时间】:2018-05-29 05:56:27
【问题描述】:

我有一个这样的数组:

array(4) {
  [0]=>
  array(1) {
    ["id"]=>
    string(3) "207"
  }
  [1]=>
  array(1) {
    ["id"]=>
    string(4) "1474"
  }
  ["date"]=>
  string(39) "Fri Dec 08 2017 00:00:00 GMT+0700 (WIB)"
  ["content"]=>
  string(4) "test"
}

我知道如何访问datecontent,但我不知道如何访问id。我尝试使用这个循环:

for ($i=0; $i < count($data); $i++){
     var_dump($data[$i]['id']);
}

但我得到了错误

未定义的偏移量:2 表示内容和日期。

如何访问这些 ID?

【问题讨论】:

  • 你的数组没有2

标签: php arrays multidimensional-array


【解决方案1】:

如果是array,您可以使用foreach 并在foreach 中添加条件

解决方案:

$data = array(
    array('id' => '207'),
    array('id' => '1474'),
    'date' => 'Fri Dec 08 2017 00:00:00 GMT+0700 (WIB)',
    'content' => 'test'
);

foreach($data as $key => $val){
    if(is_array($val)){
        //We can use foreach instead of printin it out directly 
        //if this array will have more value
        //If not just use $val['id']
        foreach($val as $k => $v){
            echo $k . ' = ' . $v . '<br />';
        }
    }else{
        echo $key . ' = ' . $val . '<br />';
    }
}

输出

id = 207
id = 1474
date = Fri Dec 08 2017 00:00:00 GMT+0700 (WIB)
content = test

【讨论】:

    【解决方案2】:

    使用 foreach,然后检查它的数组。如果您不想要datecontent,请删除else

    <?php
    $arr = [
        ['id' => '207'],
        ['id' => '1474'],
        'date' => 'Fri Dec 08 2017 00:00:00 GMT+0700 (WIB)',
        'content' => 'test'
    ];
    
    foreach ($arr as $key => $value) {
        if (is_array($value)) {
            echo $value['id'];
        } else {
            echo $value;
        }
    }
    

    // 2071474Fri Dec 08 2017 00:00:00 GMT+0700 (WIB)test

    https://3v4l.org/TOnnH

    【讨论】:

    • 答案的关键是检查它是否是一个带有is_array的数组。谢谢
    【解决方案3】:

    您编写的循环正在尝试访问不存在的键 $data[2]$data[3]。您应该能够使用$data[0]["id"]$data[1]["id"] 获得这些id 密钥。尝试这样的事情,使用 foreach 循环。

    foreach ($data as $key => $val) {
        echo ((is_array($val)) ? $val["id"] : $val);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 2019-08-03
      • 2012-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多