array_combine结果只有一个结果[重复]

问题描述 投票:2回答:1

这个问题在这里已有答案:

我使用以下代码将两个数组合并为一个json结果。但只得到第一个索引。代码中是否有任何错误,或者任何人都可以建议另一种方法来获得相同的结果。

$array1 = $_POST['array1'];
$array2 = $_POST['array2'];

$jsonArray = array();
foreach (array_combine( $array1, $array2 ) as $name => $value) {
    $jsonArray[] = array('name' => $name, 'value' => $value);
}

echo $json = json_encode($jsonArray);

$_POST['array1'] = array(4) {
[0]=>
string(3) "day1"
[1]=>
string(3) "day2"
[2]=>
string(3) "day3"
[3]=>
string(3) "day4"
}

$_POST['array2'] = array(4) {
[0]=>
string(3) "item1"
[1]=>
string(3) "item2"
[2]=>
string(3) "item3"
[3]=>
string(3) "item4"
}

预期的结果应该是这样的

[{"name":"day1","value":"item1"},{"name":"day2","value":"item2"},{"name":"day3","value":"item3"}]
php arrays array-combine
1个回答
0
投票

试试这个,

$arr1 = array('0' => 'day1', '1' => 'day2', '2' => 'day3', '3' => 'day4');
echo'<pre>';print_r($arr1);
$arr2 = array('0' => 'item1','1' =>  'item2','2' =>  'item3','3' =>  'item4');
echo'<pre>';print_r($arr2);
echo'<pre>';print_r(array_combine($arr1, $arr2));
 $newArray = array();
  foreach(array_combine($arr1, $arr2) as $key => $value){
      array_push($newArray, array('name'=> $key,'value'=>$value));
  }
echo'<pre>';print_r($newArray);
echo json_encode($newArray);die;
© www.soinside.com 2019 - 2024. All rights reserved.