1

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

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

json_decode(array)

结果:

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

5 回答 5

0

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

$key = key( (array) $result_object );
于 2013-08-24T07:42:17.410 回答
0
$array = json_decode($json, true);

foreach ($array as $key => $value)
{
    echo $key; //or use $value array to get the rest of its info
}
于 2013-08-24T07:44:52.040 回答
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']}";
}
于 2013-08-24T07:45:57.470 回答
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));

phpfiddle 中的示例

于 2013-08-24T07:51:34.473 回答
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,这就是诀窍。

于 2013-08-24T07:55:38.677 回答