Php 使用foreach循环将数组转换为json
我试图将数组转换为json,但并没有得到我想要的确切结果 这里,Php 使用foreach循环将数组转换为json,php,arrays,json,api,multidimensional-array,Php,Arrays,Json,Api,Multidimensional Array,我试图将数组转换为json,但并没有得到我想要的确切结果 这里, <?php $result=array(); $result[status]=1; $data=array( array("ucode" => "123","name" => "abc","lname" => "xyz"), array("ucode" => "431","name" => "cd
<?php
$result=array();
$result[status]=1;
$data=array(
array("ucode" => "123","name" => "abc","lname" => "xyz"),
array("ucode" => "431","name" => "cdb","lname" => "zsa")
);
foreach($data as $res){
$data=array();
$data[ucode]=$res['ucode'];
$data[name]= $res['name'];
$data[lname]= $res['lname'];
$result[content]=$data;
}
echo $res=json_encode($result);
?>
我的预期结果:
{"status":1,"content":[{"ucode":"123","name":"abc","lname":"xyz"},{"ucode":"431","name":"cdb","lname":"zsa"}]}
请告诉我哪里有错误,没有得到预期的结果。如果可以直接将数据推送到结果的内容索引中,为什么需要循环
$result = [];
$result["status"] = 1;
$data = [
["ucode" => "123", "name" => "abc", "lname" => "xyz"],
["ucode" => "431", "name" => "cdb", "lname" => "zsa"],
];
$result['content'] = $data;
echo $res = json_encode($result);
简而言之
$result = ['status' => 1, 'content' => $data];
echo json_encode($result);
工作
输出
重复使用导致问题的变量$data。另外,当您附加到$result['content']数组时,需要使用[]
我有另一个解决办法,就是和你们一起 因为我想在用json_encode传入api时重命名变量名
<?php
$result=array();
$result['status']=1;
$data=array(
array("ucode" => "123","name" => "abc","lname" => "xyz"),
array("ucode" => "431","name" => "cdb","lname" => "zsa"),
);
$ar=array();
foreach($data as $res){
$data=array();
$data['u_code']=$res['ucode'];
$data['u_name']= $res['name'];
$data['u_lname']= $res['lname'];
$ar[]=$data;
}
$result['content']=$ar;
echo $res=json_encode($result);
?>
可能是因为其中有多个语法错误code@jeroen好的,让我试试,谢谢you@jeroen,工作完美,谢谢,或者只是$result=['status'=>1,'content'=>$data]@NigelRen和wrapp使用json_编码,Bob的代码对meI非常有效,因为原始答案没有任何解释,我认为问题出在这里。代码中循环的需要是什么,你能解释一下吗?@quickSwap没有必要。但我怀疑这并不是OP在其原始代码中试图做到的。它可能是一个简化版本。是的,但实际的代码可能不是这样。我怀疑$data只是为了我们的利益。它可能来自数据库或其他来源。不管怎样,如果OP实际上只是毫无意义地循环相同的数据,那么其他答案表明他不需要这样做。我只是展示另一个观点。是的,它来自数据库
{"status":1,"content":[{"ucode":"123","name":"abc","lname":"xyz"},
{"ucode":"431","name":"cdb","lname":"zsa"}]}
<?php
$result = array(
'content' => array(),
'status' => 1
);
$data= array(
array("ucode" => "123","name" => "abc","lname" => "xyz"),
array("ucode" => "431","name" => "cdb","lname" => "zsa")
);
foreach($data as $res){
$tmp = array(
'ucode' => $res['ucode'],
'name' => $res['name'],
'lname' => $res['lname']
);
$result['content'][] = $tmp;
}
echo $res = json_encode($result);
?>
<?php
$result=array();
$result['status']=1;
$data=array(
array("ucode" => "123","name" => "abc","lname" => "xyz"),
array("ucode" => "431","name" => "cdb","lname" => "zsa"),
);
$ar=array();
foreach($data as $res){
$data=array();
$data['u_code']=$res['ucode'];
$data['u_name']= $res['name'];
$data['u_lname']= $res['lname'];
$ar[]=$data;
}
$result['content']=$ar;
echo $res=json_encode($result);
?>