2017-10-19 185 views
1

我想组合两个数组。一个关联的和一个数字数组。 $new_array = array_combine($array1, $array2)。但它正在从数组1中取值,并将它们设置为新数组的键,这就是要做的。使用关联数组键和数值数组值创建一个数组PHP

但我需要使用$ array1的键作为$ new_array的键,$ array2的值是$ new_array的值。我还考虑将$ array2的值合并到$ array1,但由于阵列不共享相同的密钥,因此无法正常工作。

这里是一个例子。

$array1 = "fname" => "NULL", "lname" => "NULL", "id" => "NULL"; 

$array2 = "john", "smith", "11123"; 

$new_array = "fname" => "john" , "lname" => "smith", id => "11123"; 

我想用这个array_combine(array_flip($array1), $array2);

,但array_flip不能用NULL工作;

+2

'ARR ay_flip()'不会给你正确的结果,也许你正在寻找'array_keys()' –

+0

*我正在寻找其他选项* - 有些神秘? – RomanPerekhrest

回答

3

使用array_keys而不是array_flip像这样:

$array1 = ["fname" => "NULL", "lname" => "NULL", "id" => "NULL"]; 

$array2 = ["john", "smith", "11123"]; 

$new_array = array_combine(array_keys($array1), $array2); 

print_r($new_array); 

输出:

​​

eval.in demo

1

你可以简单地重复,并指定

$i = 0; 
    foreach($array1 as $key=>$value){ 
    $new_array[$key]=> $array2[$i]; 
    $i++; 
    }