[英]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.