Php 使用循环从Json获取某些元素

Php 使用循环从Json获取某些元素,php,json,wordpress,Php,Json,Wordpress,我有一个包含方法的类。该方法查询数据库表中的所有内容,并以json格式返回结果 然后我这样调用该方法: $consultants = new Consultants(); $consultants->getUsersJson(); 这将返回类似于: [{“con_id”:“1”,“con_名字”:“Paul”,“con_姓氏”:“Bloggs”,“con_用户名”:”paul@email.com,“con_密码”:“密码”,“con_职务类别id”:“0”,“con_更新地址”:“201

我有一个包含方法的类。该方法查询数据库表中的所有内容,并以json格式返回结果

然后我这样调用该方法:

$consultants = new Consultants();
$consultants->getUsersJson();
这将返回类似于:

[{“con_id”:“1”,“con_名字”:“Paul”,“con_姓氏”:“Bloggs”,“con_用户名”:”paul@email.com,“con_密码”:“密码”,“con_职务类别id”:“0”,“con_更新地址”:“2015-07-08 00:00:00”,“con_创建地址”:“2015-07-08 00:00:00”},{“con_id”:“2”,“con_姓氏”:“Allan”,“con_姓氏”:“Bloggs”,“con_用户名”:paul@email.com“,”密码“:”密码“,“con_职务类别id:“0”,“con_更新地址”:“2015-07-08 00:00:00”,“con_创建地址”:“2015-07-08 00:00:00”},{“con_id:“3”,“con_姓氏”:“Ryan”,“con_姓氏”:“Bloggs”,“con_用户名”:”ryan@email.com,“con_密码”:“密码”,“con_职务类别id”:“0”,“con_更新地址”:“2015-07-08 00:00:00”,“con_创建地址”:“2015-07-08 00:00:00”}] 我现在需要某种循环来完成这个过程,因为我只需要
con_firstname
con_lastname
con_username
。它还需要类似于以下内容:

{"data"[{"con_firstname":"Ryan","con_lastname":"Bloggs","con_username":"ryan@email.com"}]}

(因此,它全部包装在“数据”中。此外,这只是一个,循环应显示所有数据。)

尝试一下,它可能会失败:

$consultants = new Consultants();
$users = $consultants->getUsersJson();

json_decode($users); 
$users = object_to_array($users); 
$data = array(
            'data'=>array()
           );

foreach ($users as $user){
    $data['data']['con_firstname'] = $user['con_firstname']
}

function object_to_array($data)
{
    if (is_object($data)) {
        $data = get_object_vars($data);
    }
    if (is_array($data)) {
        return array_map(__FUNCTION__, $data);
    }
    else {
        return $data;
    }
 }

json_encode($data); 

尝试一下,它可能会失败:

$consultants = new Consultants();
$users = $consultants->getUsersJson();

json_decode($users); 
$users = object_to_array($users); 
$data = array(
            'data'=>array()
           );

foreach ($users as $user){
    $data['data']['con_firstname'] = $user['con_firstname']
}

function object_to_array($data)
{
    if (is_object($data)) {
        $data = get_object_vars($data);
    }
    if (is_array($data)) {
        return array_map(__FUNCTION__, $data);
    }
    else {
        return $data;
    }
 }

json_encode($data); 

< P> >为了补偿KISARAGI的答案,你可以使用“JSONY-DECODE($USER,TRUE)”来直接获得一个数组

,只是为了补偿KiasaGi的答案,你可以使用“JSONY-DECODE($USER,TRUE)”来直接获得一个数组

考虑将此作为注释添加。