PHP结合了2个数组

时间:2015-02-15 15:20:53

标签: php arrays json

我在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]];

有人可以帮我这个吗?

3 个答案:

答案 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]]

更新更改了代码以获得想要的结果......