欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php如何把数据库数据转成json格式,例如"phone":"123456"改为"name":"phone","value":"123456"

程序员文章站 2022-05-30 11:24:28
...
怎么把"phone":"1234567" 改成 "name":"phone","value":"123456"。。


回复讨论(解决方案)

$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"}]