首页 > 后端开发 > php教程 > php如何把数据库数据转成json格式,例如"phone":"123456"改为"name":"phone","value":"123456"

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

WBOY
发布: 2016-06-23 13:40:51
原创
743 人浏览过

怎么把"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;$i<sizeof($arr);$i++){    $item=array('name'=>current($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"}]

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板