php如何把数据库数据转成json格式,例如"phone":"123456"改为"name":"phone","value":"123456"
程序员文章站
2022-05-05 13:45:56
...
怎么把"phone":"1234567" 改成 "name":"phone","value":"123456"。。
[{"name":"phone","value":"1234567"}]
[{"phone":"18511337033","name":"ggg","id_card":"123321123321"}]
我是这么改写的。 但是我查出来以后就变成这样了
[{"name":0,"value":{"phone":"18511337033","name":"ggg","id_card":"123321123321}}]Array
我的get_js_array()是这么写的
怎么修改
。。现在还有个需求。。 就是怎么做才可以输出出来的不是两个[[{"name":"111","value":"222" }]],
只输出一个方括号[{"name":"111","value":"222" }]
。。现在还有个需求。。 就是怎么做才可以输出出来的不是两个[[{"name":"111","value":"222" }]],
只输出一个方括号[{"name":"111","value":"222" }]
改??:
[{"name":"phone","value":"18511337033"},{"name":"name","value":"ggg"},{"name":"id_card","value":"123321123321"}]
回复讨论(解决方案)
$s = '{"phone":"1234567"}';$a = json_decode($s, 1);foreach($a as $k=>$v) $r[] = array('name' => $k, 'value' => $v);echo json_encode($r);[{"name":"phone","value":"1234567"}]
$a = '{"phone":"1234567"}';$ret = array();$arr = json_decode($a, true); foreach($arr as $key=>$val){ array_push($ret, array('name'=>$key,'value'=>$val));}echo json_encode($ret);
[{"name":"phone","value":"1234567"}]
$s="'phone':'1234567'";$arr=explode(':',$s);for($i=0;$icurrent($arr),'value'=>next($arr)); break;}echo json_encode($item);
{"name":"'phone'","value":"'1234567'"}
$s = '{"phone":"1234567"}';$a = json_decode($s, 1);foreach($a as $k=>$v) $r[] = array('name' => $k, 'value' => $v);echo json_encode($r);[{"name":"phone","value":"1234567"}]
[{"phone":"18511337033","name":"ggg","id_card":"123321123321"}]
$sql ="select * from e_user where phone='18511337033'";$result = get_js_array($sql);$a = json_decode($result);foreach($a as $k=>$v) $r[] = array('name' => $k, 'value' => $v); echo json_encode($r);echo $r;
我是这么改写的。 但是我查出来以后就变成这样了
[{"name":0,"value":{"phone":"18511337033","name":"ggg","id_card":"123321123321}}]Array
我的get_js_array()是这么写的
function get_js_array($sql){ $result = mysql_query($sql); $arr = array(); while($row = mysql_fetch_array($result, MYSQL_ASSOC)){ $arr[] = $row; } $js = json_encode($arr); mysql_free_result($result); mysql_close($conn); return $js;}
怎么修改
$s = '[{"phone":"18511337033","name":"ggg","id_card":"123321123321"}]';$a = json_decode($s, 1);foreach($a as $t) { $r = array(); foreach($t as $k=>$v) $r[] = array('name' => $k, 'value' => $v); $res[] = $r;}echo json_encode($res);[[{"name":"phone","value":"18511337033"},{"name":"name","value":"ggg"},{"name":"id_card","value":"123321123321"}]]
$s = '[{"phone":"18511337033","name":"ggg","id_card":"123321123321"}]';$a = json_decode($s, 1);foreach($a as $t) { $r = array(); foreach($t as $k=>$v) $r[] = array('name' => $k, 'value' => $v); $res[] = $r;}echo json_encode($res);[[{"name":"phone","value":"18511337033"},{"name":"name","value":"ggg"},{"name":"id_card","value":"123321123321"}]]
。。现在还有个需求。。 就是怎么做才可以输出出来的不是两个[[{"name":"111","value":"222" }]],
只输出一个方括号[{"name":"111","value":"222" }]
$s = '[{"phone":"18511337033","name":"ggg","id_card":"123321123321"}]';$a = json_decode($s, 1);foreach($a as $t) { $r = array(); foreach($t as $k=>$v) $r[] = array('name' => $k, 'value' => $v); $res[] = $r;}echo json_encode($res);[[{"name":"phone","value":"18511337033"},{"name":"name","value":"ggg"},{"name":"id_card","value":"123321123321"}]]
。。现在还有个需求。。 就是怎么做才可以输出出来的不是两个[[{"name":"111","value":"222" }]],
只输出一个方括号[{"name":"111","value":"222" }]
改??:
$s = '[{"phone":"18511337033","name":"ggg","id_card":"123321123321"}]';$a = json_decode($s, 1); foreach($a as $t) { $r = array(); foreach($t as $k=>$v) $r[] = array('name' => $k, 'value' => $v); $res[] = $r;} echo json_encode(array_pop($res));
[{"name":"phone","value":"18511337033"},{"name":"name","value":"ggg"},{"name":"id_card","value":"123321123321"}]