[英]how to merge two arrays in one array based on key and values pair
我有两个数组,如下例所示..
$arr1 = array("0" => "1");
$arr2 = array("2" => "3");
我想通过合并一个数组中的所有键和另一个数组中的所有值来制作两个不同的数组。
预期输出..
$arr3 = array("0" => "2");
$arr4 = array("1" => "3");
下面针对给出的示例进行工作。 使用array_combine
与array_keys
为$arr3
和reset
为$arr4
-
//extract the keys and combine them
$arr3 = array_combine(array_keys($arr1), array_keys($arr2));
//extract the first value and combine them
$arr4 = array_combine(array(reset($arr1)), array(reset($arr2)));
你可以这样做,使用array_keys和array_vals :
<?
$arr1 = array("0" => "1");
$arr2 = array("2" => "3");
$a1_keys = array_keys($arr1);
$a1_vals = array_values($arr1);
$a2_keys = array_keys($arr2);
$a2_vals = array_values($arr2);
$keys_merge = array();
$vals_merge = array();
for ($i = 0; $i < count($arr1); $i++) {
$keys_merge[$a1_keys[$i]] = $a2_keys[$i];
$vals_merge[$a1_vals[$i]] = $a2_vals[$i];
}
print_r($keys_merge);
print_r($vals_merge);
上面的脚本假定您已正确格式化数组。
$arr1 = array("0","1");
$arr2 = array("2","3");
foreach($arr1 as $key => $value){
$arr3[$value] = $arr2[$key];
}
这就是你所需要的。 注意:1)您对 $arr1 和 $arr2 的描述不正确 2)当数组长度不相等时,它需要更多的逻辑。
也许你可以使用array_combine()
<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);
print_r($c);
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.