Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用自定义标签和值将php sql结果数组格式更改为json格式_Php_Json_Codeigniter 3 - Fatal编程技术网

使用自定义标签和值将php sql结果数组格式更改为json格式

使用自定义标签和值将php sql结果数组格式更改为json格式,php,json,codeigniter-3,Php,Json,Codeigniter 3,我需要帮助转换这个json数据数组 {"Untracked":4,"Available":3,"Groups":"4","Users":"5"} 对于这种类型的json [{"label":"Untracked","value":"4"}, {"label":"Available","value":"3"}, {"label":"Groups","value":"4"}, {"label":"Users","value":"5"} ] 我的方法是 public function gra

我需要帮助转换这个json数据数组

{"Untracked":4,"Available":3,"Groups":"4","Users":"5"}
对于这种类型的json

[{"label":"Untracked","value":"4"},
 {"label":"Available","value":"3"},
 {"label":"Groups","value":"4"},
 {"label":"Users","value":"5"}
]
我的方法是

public function graphs(){
    $company_id =$this->session->userdata('itms_company_id');
    $data['Untracked'] = $this->mdl_fetch->count_untracked_assets ($company_id);
    $data['Available'] = $this->mdl_fetch->count_available_devices ($company_id);
    $data['Groups'] = $this->mdl_fetch->count_unassigned_groups($company_id);
    $data['Users'] = $this->mdl_fetch->count_unassigned_users($company_id);

    echo json_encode($data);
}
试试这个:

public function graphs(){
    $company_id =$this->session->userdata('itms_company_id');
    $data[] = array( 'label' => 'Untracked', 'value' => $this->mdl_fetch->count_untracked_assets ($company_id));
    $data[] = array( 'label' => 'Available', 'value' => $this->mdl_fetch->count_available_devices ($company_id));
    $data[] = array( 'label' => 'Groups', 'value' => $this->mdl_fetch->count_unassigned_groups($company_id));
    $data[] = array( 'label' => 'Users', 'value' => $this->mdl_fetch->count_unassigned_users($company_id));

    echo json_encode($data);
}
试试这个:

public function graphs(){
    $company_id =$this->session->userdata('itms_company_id');
    $data[] = array( 'label' => 'Untracked', 'value' => $this->mdl_fetch->count_untracked_assets ($company_id));
    $data[] = array( 'label' => 'Available', 'value' => $this->mdl_fetch->count_available_devices ($company_id));
    $data[] = array( 'label' => 'Groups', 'value' => $this->mdl_fetch->count_unassigned_groups($company_id));
    $data[] = array( 'label' => 'Users', 'value' => $this->mdl_fetch->count_unassigned_users($company_id));

    echo json_encode($data);
}

这是一种方式,但似乎有点冗长

json
{}
表示您需要一个对象,因此您可以使用简单的PHP
stdClass()
,添加相关属性,从
mdl->fetch
返回的数组中获取数据并加载对象。然后将其添加到
$data
数组中

public function graphs(){
    $company_id = $this->session->userdata('itms_company_id');

    $d = $this->mdl_fetch->count_untracked_assets ($company_id);
    $o = new stdClass();
    $o->label = 'Untracked';
    $o->value = $d['Untracked'];
    $data[] = $o;

    $d = $this->mdl_fetch->count_available_devices ($company_id);
    $o = new stdClass();
    $o->label = 'Available';
    $o->value = $d['Available'];
    $data[] = $o;

    $d = $this->mdl_fetch->count_unassigned_groups($company_id);
    $o = new stdClass();
    $o->label = 'Groups';
    $o->value = $d['Groups'];
    $data[] = $o;

    $d = $this->mdl_fetch->count_unassigned_users($company_id);
    $o = new stdClass();
    $o->label = 'Users';
    $o->value = $d['Users'];
    $data[] = $o;

    echo json_encode($data);
}

这是一种方式,但似乎有点冗长

json
{}
表示您需要一个对象,因此您可以使用简单的PHP
stdClass()
,添加相关属性,从
mdl->fetch
返回的数组中获取数据并加载对象。然后将其添加到
$data
数组中

public function graphs(){
    $company_id = $this->session->userdata('itms_company_id');

    $d = $this->mdl_fetch->count_untracked_assets ($company_id);
    $o = new stdClass();
    $o->label = 'Untracked';
    $o->value = $d['Untracked'];
    $data[] = $o;

    $d = $this->mdl_fetch->count_available_devices ($company_id);
    $o = new stdClass();
    $o->label = 'Available';
    $o->value = $d['Available'];
    $data[] = $o;

    $d = $this->mdl_fetch->count_unassigned_groups($company_id);
    $o = new stdClass();
    $o->label = 'Groups';
    $o->value = $d['Groups'];
    $data[] = $o;

    $d = $this->mdl_fetch->count_unassigned_users($company_id);
    $o = new stdClass();
    $o->label = 'Users';
    $o->value = $d['Users'];
    $data[] = $o;

    echo json_encode($data);
}

不需要更改整个函数

echo json\u encode($data)更改
to
返回json_encode($data)

创建一个函数,在调用
graph()
函数后将格式从一个json更改为另一个json。您可以调用另一个函数,根据需要返回json数据

function changeFormat($js)
{
    $jsArray = json_decode($js,true);
    $result = array();
    foreach($jsArray as $key=>$value)
   {
       $result[] = array("label"=>$key,"value"=>$value);
   }
    return json_encode($result);
}

echo changeFormat($js);

不需要更改整个函数

echo json\u encode($data)更改
to
返回json_encode($data)

创建一个函数,在调用
graph()
函数后将格式从一个json更改为另一个json。您可以调用另一个函数,根据需要返回json数据

function changeFormat($js)
{
    $jsArray = json_decode($js,true);
    $result = array();
    foreach($jsArray as $key=>$value)
   {
       $result[] = array("label"=>$key,"value"=>$value);
   }
    return json_encode($result);
}

echo changeFormat($js);

下面是一个示例,它们具有相同的输出

$a = array(); <br>
$a[0]['label'] = "Untracked"; <br>
$a[0]['value'] = "4"; <br>
$a[1]['label'] = "Available"; <br>
$a[1]['value'] = "3"; <br>
$a[2]['label'] = "Groups"; <br>
$a[2]['value'] = "4"; <br>
$a[3]['label'] = "Users"; <br>
$a[3]['value'] = "3"; <br>

$json= json_encode($a); <br>

<b>Output</b> <br>

[{"label":"Untracked","value":"4"},<br>{"label":"Available","value":"3"},<br>{"label":"Groups","value":"4"},<br>{"label":"Users","value":"3"}]<br>
$a=array()
$a[0]['label']=“未跟踪”
$a[0]['value']=“4”
$a[1]['label']=“可用”
$a[1]['value']=“3”
$a[2]['label']=“组”
$a[2]['value']=“4”
$a[3]['label']=“用户”
$a[3]['value']=“3”
$json=json_encode($a)
输出
[{“标签”:“未跟踪”,“值”:“4”},
{“标签”:“可用”,“值”:“3”},
{“标签”:“组”,“值”:“4”},
{“标签”:“用户”,“值”:“3”}]
因此,您可以编写如下函数:

function graphs(){
    $company_id =$this->session->userdata('itms_company_id');<br>
    $data[0]["lable"] = "Untracked";<br>
    $data[0]['value'] = $this->mdl_fetch->count_untracked_assets ($company_id);<br>
    $data[1]["lable"] = "Available";<br>
    $data[1]["value"] = $this->mdl_fetch->count_available_devices ($company_id);<br>
    $data[2]["lable"] = "Groups";<br>
    $data[2]["lable"] = $this->mdl_fetch->count_unassigned_groups($company_id);<br>
    $data[3]["lable"] = "Users";<br>
    $data[3]["lable"] = $this->mdl_fetch->count_unassigned_users($company_id);<br>

    echo json_encode($data);
}
函数图(){
$company_id=$this->session->userdata('itms_company_id');
$data[0][“标签”]=“未跟踪”;
$data[0]['value']=$this->mdl\u fetch->count\u untracked\u资产($company\u id);
$data[1][“标签”]=“可用”;
$data[1][“value”]=$this->mdl\u fetch->count\u available\u devices($company\u id);
$data[2][“标签”]=“组”;
$data[2][“lable”]=$this->mdl\u fetch->count\u unassigned\u group($company\u id);
$data[3][“标签”]=“用户”;
$data[3][“lable”]=$this->mdl\u fetch->count\u unassigned\u users($company\u id);
echo json_编码($data); }
这里是一个示例,它们具有相同的输出

$a = array(); <br>
$a[0]['label'] = "Untracked"; <br>
$a[0]['value'] = "4"; <br>
$a[1]['label'] = "Available"; <br>
$a[1]['value'] = "3"; <br>
$a[2]['label'] = "Groups"; <br>
$a[2]['value'] = "4"; <br>
$a[3]['label'] = "Users"; <br>
$a[3]['value'] = "3"; <br>

$json= json_encode($a); <br>

<b>Output</b> <br>

[{"label":"Untracked","value":"4"},<br>{"label":"Available","value":"3"},<br>{"label":"Groups","value":"4"},<br>{"label":"Users","value":"3"}]<br>
$a=array()
$a[0]['label']=“未跟踪”
$a[0]['value']=“4”
$a[1]['label']=“可用”
$a[1]['value']=“3”
$a[2]['label']=“组”
$a[2]['value']=“4”
$a[3]['label']=“用户”
$a[3]['value']=“3”
$json=json_encode($a)
输出
[{“标签”:“未跟踪”,“值”:“4”},
{“标签”:“可用”,“值”:“3”},
{“标签”:“组”,“值”:“4”},
{“标签”:“用户”,“值”:“3”}]
因此,您可以编写如下函数:

function graphs(){
    $company_id =$this->session->userdata('itms_company_id');<br>
    $data[0]["lable"] = "Untracked";<br>
    $data[0]['value'] = $this->mdl_fetch->count_untracked_assets ($company_id);<br>
    $data[1]["lable"] = "Available";<br>
    $data[1]["value"] = $this->mdl_fetch->count_available_devices ($company_id);<br>
    $data[2]["lable"] = "Groups";<br>
    $data[2]["lable"] = $this->mdl_fetch->count_unassigned_groups($company_id);<br>
    $data[3]["lable"] = "Users";<br>
    $data[3]["lable"] = $this->mdl_fetch->count_unassigned_users($company_id);<br>

    echo json_encode($data);
}
函数图(){
$company_id=$this->session->userdata('itms_company_id');
$data[0][“标签”]=“未跟踪”;
$data[0]['value']=$this->mdl\u fetch->count\u untracked\u资产($company\u id);
$data[1][“标签”]=“可用”;
$data[1][“value”]=$this->mdl\u fetch->count\u available\u devices($company\u id);
$data[2][“标签”]=“组”;
$data[2][“lable”]=$this->mdl\u fetch->count\u unassigned\u group($company\u id);
$data[3][“标签”]=“用户”;
$data[3][“lable”]=$this->mdl\u fetch->count\u unassigned\u users($company\u id);
echo json_编码($data); }
为什么,无论你能用第二个做什么,你都能用第一个做。请解释您实际想要实现的目标。
echo json_encode(数组($data))
@ParthChavda没有注意这个问题为什么,无论你能用第二个做什么,你都能用第一个做。请解释您实际想要实现的目标。
echo json_encode(数组($data))@ParthChavda没有注意到这个问题