我有两个数组:
Array 1
(
[0] => 976504282322
[1] => 976530000022
)
=====
Array 2
(
[0] => Array
(
[Mobile] => 978504282398
[Name] => Mike
)
[1] => Array
(
[Mobile] => 976504282300
[Name] => Jhon
)
)
====
我想合并它们,最终结果应该是:
===
Array3
(
[0] => Array
(
[Mobile] => 978504282398
[Name] => Mike
)
[1] => Array
(
[Mobile] => 976504282300
[Name] => Jhon
)
[2] => Array
(
[Mobile] => 976504282322
)
[3] => Array
(
[Mobile] => 976504282322
)
)
注意:性能在这里非常重要,因为每个数组都有超过200,000项,所以使用for循环不是一个好主意。
我的代码:
foreach ($Array1 as $mobile=> $value) {
$Array2[]['Mobile']=$value;
}
答案 0 :(得分:3)
这是一个oneliner:
$a = array(1,2,3);
$b = array(array('Mobile' => 1, 'name' => 'Mike'));
var_dump(
array_merge($b, array_map(function($i) { return array('Mobile' => $i); }, $a))
);
PS:即使你没有明确地看到一个循环 - php在内部执行它。
PPS:我个人会创建一个性能测试来比较一个简单的for
基础解决方案。而且我相信它会更好(并且会毫无疑问地消耗更少的内存)
答案 1 :(得分:2)
为什么不Array_Merge?特别是对于这样的任务,合并多个数组。 但是你需要存储
Array 1
(
[0] => 976504282322
[1] => 976530000022
)
作为
Array 1
(
[0] => array('Mobile'=>976504282322)
[1] => array('Mobile'=>976530000022)
)
然后你就可以合并了。 anywawys应该比循环200k数组更快。 如果您不关心数组索引,也可以尝试
$arr = $arr + $arr2; // appending
答案 2 :(得分:1)
尝试此功能:
function my_array_merge() {
$new = array();
foreach (func_get_args() as $arr) {
foreach ($arr as $item) {
if (!is_array($item)) {
$item = array('Mobile' => $item);
}
$new[] = $item;
}
}
return $new;
}
示例:
$arr1 = array(
'976504282322',
'976530000022',
);
$arr2 = array(
array(
'Mobile' => '978504282398',
'Name' => 'Mike',
),
array(
'Mobile' => '976504282300',
'Name' => 'John',
),
);
print_r(my_array_merge($arr2,$arr1));
答案 3 :(得分:0)
这很好用
<?php
$array = array("a" , "b", "c" ,"d");
$array1 = array(1 , 2, 3 ,4);
$sum=array();
for($i=0;$i<count($array);$i++)
{
$sum[$i][1]=$array[$i];
$sum[$i][2]=$array1[$i];
}
echo '<pre>';
print_r($sum);
?>