PHP从JSON获取值

时间:2013-08-24 07:33:49

标签: php

我有以下格式的客户详细信息

如何从输出中获取客户ID为“5”。

json_decode(array)

结果:

stdClass Object (
    [5] => stdClass Object ( 
        [email] => siddareddy.vishnuvardhanreddy@gmail.com 
        [firstname] => vishnu 
        [lastname] => siddareddy 
    ) 
) 

5 个答案:

答案 0 :(得分:0)

您可以将其转换为数组,然后获取第一个key

$key = key( (array) $result_object );

答案 1 :(得分:0)

$array = json_decode($json, true);

foreach ($array as $key => $value)
{
    echo $key; //or use $value array to get the rest of its info
}

答案 2 :(得分:0)

请注意,您的第一行不能将第二行作为输出。第一行应该返回一个数组,而第二个代码块是一个对象。

您可以循环遍历Array / Object的所有键和值,并以这种方式获得'5':

foreach( $decodedjson as $key => $val ) {
  #Key is: 5
  echo "Key is: {$key}";
  #Val['firstname'] is: vishnu
  echo "Val['firstname'] is: {$val['firstname']}";
}

答案 3 :(得分:0)

如果要将数组从id反转到该数组,请发送电子邮件至id:

$result = json_decode($array, true);
// Change email to something else if you want another key
$inversecopy = array_flip(array_map(function($val) { return $val['email']; }, $result));

Example in phpfiddle

答案 4 :(得分:0)

您可以像这样访问数字属性

<?php
$data = array(
    "5" => array(
        'email' => 'siddareddy.vishnuvardhanreddy@gmail.com',
        'firstname' => 'vishnu',
        'lastname' => 'siddareddy'
    )
);
$json = json_encode($data);
$obj = json_decode($json);
var_dump($obj->{5}->email);

$obj->{5}->email,这就是诀窍。