我有用于创建数组对象的代码,我想知道执行此操作的最佳实践,并且我正在尝试学习php最佳实践。
$authorId = array("1", "2");
$authorName = array("Juan Cruz", "Jose Rizal");
$authorSname = array("J. Cruz", "J. Rizal");
for ($i = 0; $i < count($authorId); $i++) {
array_push($authorValue, array(
"author_id" => $authorId[$i],
"author_name" => $authorName[$i],
"author_sname" => $authorSname[$i],
));
}
,这也是此代码转换为JSON的结果。
[
{
"author_id": "1",
"author_name": "Juan Cruz",
"author_sname": "J. Cruz"
},
{
"author_id": "2",
"author_name": "Jose Rizal",
"author_sname": "J. Rizal"
}
]
答案 0 :(得分:2)
您可以使用:
$authorId = array("1", "2");
$authorName = array("Juan Cruz", "Jose Rizal");
$authorSname = array("J. Cruz", "J. Rizal");
$keys = array("author_id", "author_name", "author_sname");
$res = array_map(null, $authorId, $authorName, $authorSname);
$res = array_map(function ($e) use ($keys) {return json_encode(array_combine($keys, $e), JSON_FORCE_OBJECT);}, $res);
使用JSON_FORCE_OBJECT转换为json
答案 1 :(得分:1)
您可以使用array_map
$res = [];
$key=0;
array_map(function($v1,$v2,$v3) use(&$res,&$key){
$res[] = [
'author_id' => $v1,
'author_name' => $v2,
'author_sname'=> $v3
];
$key++;
}, $authorId,$authorName,$authorSname);
echo json_encode($res);
答案 2 :(得分:1)
您可以执行最快的简便方法
<?php
$authorId = array("1", "2");
$authorName = array("Juan Cruz", "Jose Rizal");
$authorSname = array("J. Cruz", "J. Rizal");
$res = [];
foreach($authorId as $key => $value){
$res[] = [
'author_id' => $value,
'author_name' => $authorName[$key],
'author_sname'=> $authorSname[$key]
];
}
echo json_encode($res);