我在php中有2个数组
$array1[] = a,b,c,d,e;
$array2[] = 1,2,3,4,5;
$data = array('letter'=>$array1,'num'=>$array2);
return json_encode($data);
这将返回:
[[a,b,c,d,e],[1,2,3,4,5]]
我想在json_encode中返回它,如下所示:
$data = [[1a,1],[b,2],[c,3],[d,4],[e,5]];
有人可以帮我这个吗?
答案 0 :(得分:2)
这是最简单的解决方案
$result = array();
foreach ($array1 as $k1 => $v1) {
$result[] = array($v1, $array2[$k1]);
}
echo json_encode($result)
但数组必须具有相同的长度和相同的键
答案 1 :(得分:0)
尝试下面的代码,它很灵活,不必关心数组的长度。
<?php
$letters = array('a','b','c','d','e');
$numbers = array('1','2','3','4','5');
$counter = (sizeof($letters) > sizeof($numbers)) ? sizeof($letters) : sizeof($numbers);
$arr = array();
for($i=0; $i<$counter; $i++)
{
if(array_key_exists($i, $letters))
$arr[$i][] = $letters[$i];
if(array_key_exists($i, $numbers))
$arr[$i][] = $numbers[$i];
}
$json = json_encode($arr);
echo $json;
的输出:强>
[["a","1"],["b","2"],["c","3"],["d","4"],["e","5"]]
的演示:强>
http://3v4l.org/7v7X4
答案 2 :(得分:0)
您要找的是函数array_combine()。
以下是一个例子:
$array1 = array("a","b","c","d","e");
$array2 = array(1,2,3,4,5);
$data = array_combine($array1, $array2);
$new_data = array();
foreach($data AS $key => $value) {
$new_data[] = array($key, $value);
}
print_r(json_encode($new_data));
应该返回类似的内容:
[["a",1],["b",2],["c",3],["d",4],["e",5]]
更新更改了代码以获得想要的结果......