>  기사  >  백엔드 개발  >  php怎么把数据库数据转成json格式,例如"phone""123456"改为"name""phone""value""123456"

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

WBOY
WBOY원래의
2016-06-13 12:14:321054검색

php如何把数据库数据转成json格式,例如"phone":"123456"改为"name":"phone","value":"123456"
怎么把"phone":"1234567"  改成 "name":"phone","value":"123456"。。
------解决思路----------------------

$s = '{"phone":"1234567"}';<br /><br />$a = json_decode($s, 1);<br />foreach($a as $k=>$v) $r[] = array('name' => $k, 'value' => $v);<br /><br />echo json_encode($r);<br />
[{"name":"phone","value":"1234567"}]

------解决思路----------------------
<br />$a = '{"phone":"1234567"}';<br />$ret = array();<br />$arr = json_decode($a, true); <br />foreach($arr as $key=>$val){<br />    array_push($ret, array('name'=>$key,'value'=>$val));<br />}<br /><br />echo json_encode($ret);<br />


[{"name":"phone","value":"1234567"}]
------解决思路----------------------
<br />$s="'phone':'1234567'";<br />$arr=explode(':',$s);<br />for($i=0;$i<sizeof($arr);$i++){<br />    $item=array('name'=>current($arr),'value'=>next($arr));<br />    break;<br />}<br />echo json_encode($item);<br />

<br />{"name":"'phone'","value":"'1234567'"}<br />

------解决思路----------------------
$s = '[{"phone":"18511337033","name":"ggg","id_card":"123321123321"}]';<br />$a = json_decode($s, 1);<br /><br />foreach($a as $t) {<br />  $r = array();<br />  foreach($t as $k=>$v) $r[] = array('name' => $k, 'value' => $v);<br />  $res[] = $r;<br />}<br /><br />echo json_encode($res);<br />
[[{"name":"phone","value":"18511337033"},{"name":"name","value":"ggg"},{"name":"id_card","value":"123321123321"}]]

------解决思路----------------------

引用:
Quote: 引用:

$s = '[{"phone":"18511337033","name":"ggg","id_card":"123321123321"}]';<br />$a = json_decode($s, 1);<br /><br />foreach($a as $t) {<br />  $r = array();<br />  foreach($t as $k=>$v) $r[] = array('name' => $k, 'value' => $v);<br />  $res[] = $r;<br />}<br /><br />echo json_encode($res);<br />
[[{"name":"phone","value":"18511337033"},{"name":"name","value":"ggg"},{"name":"id_card","value":"123321123321"}]]


。。现在还有个需求。。  就是怎么做才可以输出出来的不是两个[[{"name":"111","value":"222" }]],  
只输出一个方括号[{"name":"111","value":"222" }]


改這樣:

<br />$s = '[{"phone":"18511337033","name":"ggg","id_card":"123321123321"}]';<br />$a = json_decode($s, 1);<br /> <br />foreach($a as $t) {<br />  $r = array();<br />  foreach($t as $k=>$v) $r[] = array('name' => $k, 'value' => $v);<br />  $res[] = $r;<br />}<br /> <br />echo json_encode(array_pop($res));<br />


[{"name":"phone","value":"18511337033"},{"name":"name","value":"ggg"},{"name":"id_card","value":"123321123321"}]
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.