使用自定义标签和值将php sql结果数组格式更改为json格式
我需要帮助转换这个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
{"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
{}
表示您需要一个对象,因此您可以使用简单的PHPstdClass()
,添加相关属性,从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
{}
表示您需要一个对象,因此您可以使用简单的PHPstdClass()
,添加相关属性,从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没有注意到这个问题