我有一个这样的数组:
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"
}
我知道如何访问date
和content
,但我不知道如何访问id
。我尝试使用这个循环:
for ($i=0; $i < count($data); $i++){
var_dump($data[$i]['id']);
}
但我收到了错误
未定义的偏移量:2表示内容和日期。
我如何访问这些ID?
答案 0 :(得分:1)
使用foreach,然后检查它的数组。如果您不想date
和content
,请删除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
答案 1 :(得分:1)
您撰写的循环正在尝试访问不存在的密钥$data[2]
和$data[3]
。您应该能够使用id
和$data[0]["id"]
获取这些$data[1]["id"]
个密钥。尝试这样的事情,foreach
循环。
foreach ($data as $key => $val) {
echo ((is_array($val)) ? $val["id"] : $val);
}
答案 2 :(得分:1)
您可以使用foreach
并在foreach
内添加条件array
<强>解决方案:强>
$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