我知道我不是唯一一个提出这个问题的人,答案可能很简单。 但是我在其他问题中找不到我的具体问题的答案,所以;
我有这个Json数据;
$house = [
{
"ID": "1",
"NAME": "Test"
},
{
"ID": "3",
"NAME": "Office"
}
]
我想知道如何选择$ house中所有房间的身份证号码。
所以我想$room_numbers = [1,3];
我以为我可以用类似的东西来选择'1'。
echo $house[0][0]
但这不起作用。
答案 0 :(得分:2)
只需使用json_decode()
docs json_decode
<?php
$result = '[{ "ID": "1", "NAME": "Test" }, { "ID": "3", "NAME": "Office" }]';
$ARRAY = json_decode($result,true);
//second parameter true is used to decode as a array
//print_r($ARRAY);
echo $ARRAY[0]["ID"];
?>
输出: 1
让两个id像这样循环数组
方法1:
foreach($ARRAY as $key=>$val)
{
$room_numbers[]=$val['ID'];
}
print_r($room_numbers);
<强>输出:强>
array(1,3);
方法2:
使用array_column
从记录集中获取ID列
$new_array= array_column($ARRAY,'ID');
print_r($new_array);
<强>输出:强>
array(1,3);
答案 1 :(得分:1)
$house = json_decode($house);
echo $house[0]->ID;
您可以循环并打印两个ID
$house = json_decode($house);
foreach($house as $row){
echo $row->ID;
}
答案 2 :(得分:0)
你可以使用'array_map'函数,这是一个例子:
$house = '[
{
"ID": "1",
"NAME": "Test"
},
{
"ID": "3",
"NAME": "Office"
}
]';
$house = json_decode($house, true);
$result = array_map(function($item) {
if (isset($item['ID'])) {
return $item['ID'];
}
}, $house);
var_dump($result);
答案 3 :(得分:0)
for循环的示例
//this variable should be valid JSON string
$house = '[
{
"ID": "1",
"NAME": "Test"
},
{
"ID": "3",
"NAME": "Office"
}
]';
$house = json_decode($house, true);
$room_numbers = array();
for( $i = 0; $i < count($house); $i++ ){
$room_numbers[] = $house[$i]["ID"];
}
//echo var_dump($room_numbers);
//echo json_encode($room_numbers);
while循环的示例
//this variable should be valid JSON string
$house = '[
{
"ID": "1",
"NAME": "Test"
},
{
"ID": "3",
"NAME": "Office"
}
]';
$house = json_decode($house, true);
$room_numbers = array();
$i = 0
while($i < count($house)) {
$room_numbers[] = $house[$i]["ID"];
$i++;
}
//echo var_dump($room_numbers);
//echo json_encode($room_numbers);