当前位置: 代码迷 >> PHP >> php怎么把数据库数据转成json格式,例如"phone""123456"改为"name""phone""value""123456"
  详细解决方案

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

热度:242   发布时间:2016-04-28 17:53:40.0
php如何把数据库数据转成json格式,例如"phone":"123456"改为"name":"phone","value":"123456"
怎么把"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":"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"}]]

------解决思路----------------------
引用:
Quote: 引用:

$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"}]
  相关解决方案