[英]php adding 1d array to 2d array
我有两个数组:
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;
}
这是一个单线纸:
$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
基础的解决方案。 而且我相信它会更好(并且毫无疑问会消耗更少的内存)
为什么不使用Array_Merge ? 特别是对于此类任务,合并多个数组。 但是你需要存储
Array 1
(
[0] => 976504282322
[1] => 976530000022
)
如
Array 1
(
[0] => array('Mobile'=>976504282322)
[1] => array('Mobile'=>976530000022)
)
然后就可以合并了。 anywawys应该比循环200k数组更快。 如果您不关心数组索引,也可以尝试
$arr = $arr + $arr2; // appending
试试这个功能:
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));
这很好
<?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);
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.