㈠ php 數組合並
$a1=array('num1'=>1,'num2'=>2,'num3'=>3);
$a2=array('num11'=>212,'num5'=>5,'num3'=>3);
$a3=array_merge_recursive($a1,$a2);//合並兩個數組
functionarr_sum(&$value,$key){//回調函數,實現元素相加
if(is_array($value))$value=array_sum($value);
}
array_walk($a3,'arr_sum');//遍歷數組
㈡ php兩個相關的多維數組怎麼合並成一個數組
如果是兩個數組是相對應的,可以使用以下方法:
<?php
//數組1(gc_class):
$gc_class=array(
0=>array('gc_id'=>1,'gc_name'=>'分類1','gc_title'=>'111111'),
1=>array('gc_id'=>2,'gc_name'=>'分類2','gc_title'=>'2222')
);
//數組2(acticity):
$acticity=array(
'0'=>array('activity_id'=>1,'gc_class'=>1,'activity_name'=>'分類1下面的活動'),
'1'=>array('activity_id'=>2,'gc_class'=>2,'activity_name'=>'分類2下面的活動')
);
$arrs=array();
foreach($gc_classas$key=>$_gc_class){
$arrs[$key]=array_merge($_gc_class,$acticity[$key]);
}
print_r($arrs);
exit;
㈢ PHP如何把兩個數組結果合並在一起
首先你的思路是正確的,這點可以肯定,合並數組可以使用array_merge() 這個函數,
array_merge() 函數把兩個或多個數組合並為一個數組。
如果鍵名有重復,該鍵的鍵值為最後一個鍵名對應的值(後面的覆蓋前面的)。如果數組是數字索引的,則鍵名會以連續方式重新索引。
㈣ PHP將兩個關聯數組合並函數提高函數效率
在foreach中循環查詢數據代碼量比較少,但是性能亂大差比較低,好點的解決辦法是將id收集起來,用in一次性查詢,但是這引發了數據結構不是我們用PHP自帶的函數可以合並的,今天測試了一下:
使用下面的位元組寫的函數仿遲可以解決
從資料庫中取出來的數據總是或多或少不符合我們心目中的數據結嘩皮構,類似於下面的倆個數組,要形成SQL中類似於left join後兩個數組合並:
代碼如下:
$test1 = Array(0 = Array('id' = 9478137,
'create_time' = 1394760724),
1 = Array('id' = 9478138,
'create_time' = 1394760725),
2 = Array('id' = 9478138,
'create_time' = 1394760725));
$test2 = array(0 = array('id' = 9478137,
'message' = 'love you'),
1 = array('id' = 9478138,
'message' = 'miss you'));
如果要將這兩個數組,類似於sql中的left join 關聯起來我們用什麼函數呢?額我沒有找見就自己寫了
剛開始的時候,用的是嵌套循環:效率低下
代碼如下:
function _mergerArray($array1, $array2, $field1, $field2 = '') {
$ret = array();
foreach($array1 as $key1 = $value1 ) {
foreach ($array2 as $key2 = $value2) {
if($value1[$field1] == $value2[$field2]) {
$ret[$key1] = array_merge($value1, $value2);
}
}
}
return $ret;
}
改進後的辦法,使用數組下標,使用兩次循環:形成類似於left join的方式
代碼如下:
$test1 = Array(0 = Array('id' = 9478137,
'create_time' = 1394760724),
1 = Array('id' = 9478138,
'create_time' = 1394760725),
2 = Array('id' = 9478138,
'create_time' = 1394760725));
$test2 = array(0 = array('id' = 9478137,
'message' = 'love you'),
1 = array('id' = 9478138,
'message' = 'miss you'));
function _mergerArray($array1, $array2, $field1, $field2 = '') {
$ret = array();
//使用數組下標的辦法
foreach ($array2 as $key = $value) {
$array3[$value[$field1]] = $value;
}
foreach ($array1 as $key = $value) {
$ret[] = array_merge($array3[$value[$field1]], $value);
}
return $ret;
}
$ret = _mergerArray($test1, $test2, 'id', 'id');
print_r($ret);exit;
列印出來結果如下:
代碼如下:
Array
([0] = Array
([id] = 9478137
[message] = love you
[create_time] = 1394760724)
[1] = Array
([id] = 9478138
[message] = miss you
[create_time] = 1394760725)
[2] = Array
([id] = 9478138
[message] = miss you
[create_time] = 1394760725))
相當於left join了吧?
㈤ 如何用Php把這兩個數組合並呢
array_merge()
㈥ php 兩個數組怎麼合並成一個
arrayarray_merge(array$array1[,array$...])
array_merge() 將一個或多個數組的單元合並起來,一個數組中的值附加在前一個數組的後面。返回作為結果的數組。
如果輸入的數組中有相同的字元串鍵名,則該鍵名後面的值將覆蓋前一個值。然而,如果數組包含數字鍵名,後面的值將不會覆蓋原來的值,而是附加到後面。
如果只給了一個數組並且該數組是數字索引的,則鍵名會以連續方式重新索引。
如果你想完全保留原有數組並只想新的數組附加到後面,用 + 運算符:
<?php
$array1=array(0=>'zero_a',2=>'two_a',3=>'three_a');
$array2=array(1=>'one_b',3=>'three_b',4=>'four_b');
$result=$array1+$array2;
var_mp($result);
?>
㈦ php合並兩個數組報錯如何解決
/*foreach($arr as $key => &$value) {
$value['shop_name']='';
}
unset( $value );
*/
foreach($arr as $k2 =>&$v2) {
$v2['shop_name']='';
foreach($arr2 as $k =>$v) {
if($v2['id'] == $v['id']) {
$v2['shop_name'] = $v['shop_name'];
}
}
}
print_r($arr)
㈧ php 兩個普通數組合並為一個普通數組
php兩個普通數組合並為一個普通數組可以參考下面的代碼:
<?php
$a=array(1,2,3,4,5);
$b=array(6,7,8,9,10);
$c=array_merge($a,$b);
print_r($c);
?>
註:當被合並的數組中有一個數組為空時,可能會出現合並後的數組也為空。
(8)php合並2個數組擴展閱讀:
PHP常用函數
printf()函數輸出格式化的字元串。
print()函數輸出一個或多個字元串。
parse_str()函數把查詢字元串解析到變數中。
ord() 函數返回字元串第一個字元的 ASCII 值。
number_format()函數通過千位分組來格式化數字。
nl2br()函數在字元串中的每個新行 ( ) 之前插入 HTML 換行符 (<br />)。
nl_langinfo()函數返回指定的本地信息。
㈨ php數組合並 要保持兩個數組的鍵名都不變
鍵名如果都是唯一的.. 寫個循環來組一個新的數組就可以了:
$a = array("a" => "avalue", "b" => "bvalue");
$b = array("c" => "cvalue", "d" => "dvalue");
$c = array();
foreach( $a as $key=> $value ) {
$c[$key] = $value;
}
foreach( $b as $key=> $value ) {
$c[$key] = $value;
}
㈩ php 兩個數組合並,並重新命名鍵名
按我理解,你要的效果應該是這樣吧:
array(30) {
[0] => array(2) {
['time'] => string(10) "2019-09-21"
['xq'] => string(10) "2019-09-22"
}
[1] => array(2) {
['time'] => string(10) "2019-09-21"
['xq'] => string(10) "2019-09-22"
}
......
[29] => array(2) {
['time'] => string(10) "2019-10-20"
['xq'] => string(10) "2019-09-22"
}
}
如果是這樣,那就這樣實現:
$arr=原數組;
$arr1=array_map(function($v1,$v2){
return array("time"=>$v1,"xq"=>$v2);
},$arr["time"],$arr["xq"]);
print_r($arr1);