使用php从Json数组中选择数据

时间:2016-10-24 09:12:58

标签: php arrays json select

我知道我不是唯一一个提出这个问题的人,答案可能很简单。 但是我在其他问题中找不到我的具体问题的答案,所以;

我有这个Json数据;

$house = [ 
 { 
   "ID": "1", 
   "NAME": "Test" 
 }, 
 { 
   "ID": "3", 
   "NAME": "Office" 
 } 
]

我想知道如何选择$ house中所有房间的身份证号码。 所以我想$room_numbers = [1,3]; 我以为我可以用类似的东西来选择'1'。

echo $house[0][0]

但这不起作用。

4 个答案:

答案 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);