php兩個二維數組
『壹』 php中如何合並幾個二維數組成為一個二維數組
PHP 中的 array_merge_recursive() 函數可以實現
將一個或多個數組的元素的合並起來,一個數組中的值附加在前一個數組的後面。並返回作為結果的數組。
當有重復的鍵名時,值不會被覆蓋,而是將多個相同鍵名的值遞歸組成一個數組。
array_merge_recursive(array1,array2,array3...)
參數說明
array1 必需。輸入的第一個數組。
array2 必需。輸入的第二個數組。
array3 可選。可指定的多個輸入數組。
例如:
<?php
$a1=array("a"=>"Horse","b"=>"Dog");
$a2=array("c"=>"Cow","b"=>"Cat");
print_r(array_merge_recursive($a1,$a2));
?>
輸出:
Array (
[a] => Horse
[b] => Array ( [0] => Dog [1] => Cat )
[c] => Cow
)
註:array_merge() 函數也可以實現,與 array_merge_recursive()函數不同是,如果鍵名有重復,該鍵的鍵值為最後一個鍵名對應的值(後面的覆蓋前面的)。如果數組是數字索引的,則鍵名會以連續方式重新索引。
『貳』 php合並兩個二維數組,如果兩個二維數組的id值相等,則合並為一個新的數組
id本應該是唯一性的鍵值,利用好就行。以下輸出沒有對id排序,因為覺得沒必要。
需要時可以再排。
function mergeById(&$a,&$b){
$c=array();
foreach($a as $e) $c[$e['id']]=$e;
foreach($b as $e) $c[$e['id']]=isset($c[$e['id']])? $c[$e['id']]+$e : $e;
return $c;
}
$a=//數組一;
$b=//數組二;
var_mp(mergeById($b,$a));
===========
array
1 =>
array
'id' => int 1
'name' => string 'test' (length=4)
'subject' => string 'subject' (length=7)
2 =>
array
'id' => int 2
'name' => string 'test2' (length=5)
3 =>
array
'id' => int 3
'name' => string 'test3' (length=5)
'subject' => string 'subject3' (length=8)
『叄』 php將兩個二維數組按具有相同值合並
開始 - 運行輸入msconfig,回車,進入系統配置,點擊:引導 - 高級選項,在處理器個數處,點擊勾選4,確定,重啟電腦。
『肆』 php兩個二維數組匹配問題
用array_intersect_assoc()函數試試,這個函數的作用是返回兩個數組中鍵和值都相同的元素的交集。
『伍』 求問php兩個二維數組中每個元素的相加
<?php
$array_1=array(array(0,1,2),array(3,4,5),array(6,7,8));
$array_2=array(array(0,1,2),array(3,4,5),array(6,7,8));
foreach($array_1as$k1=>$v1){
foreach($v1as$k2=>$v2){
$array_1[$k1][$k2]+=$array_2[$k1][$k2];
}
}
echo"<pre>";
print_r($array_1);
echo"</pre>";
?>
運行結果
Array
(
[0] => Array
(
[0] => 0
[1] => 2
[2] => 4
)
[1] => Array
(
[0] => 6
[1] => 8
[2] => 10
)
[2] => Array
(
[0] => 12
[1] => 14
[2] => 16
)
)
望採納 Thx
『陸』 thindphp二個二維數組怎麼合並成一個二維數組
$msg = array(
array(
'id'=>'45s',
'name'=>'jacks'
),
array(
'id'=>'3s4',
'name'=>'masry'
),
array(
'id'=>'7s8',
'name'=>'lili'
),
);
一般實現方法:
1解:foreach($msg as $k => $v){
$ids[] = $id;
$names[] = $name;
}
2解:$ids = array_column($msg, 'id');
$names = array_column($msg, 'name');
以上兩種解法print_r($names);後的結果為:
Array(
[0]=>jack
[1]=>mary
[2]=>lili
)
『柒』 php 2個二維數組 如何判斷差集
<?php
$a=[
["sbnumber"=>"0513-0001-00001","name"=>"心安苑"],
["sbnumber"=>"0513-0001-00002","name"=>"中正苑"],
["sbnumber"=>"0513-0001-00003","name"=>"務實苑"],
["sbnumber"=>"0513-0001-00004","name"=>"服務苑"],
["sbnumber"=>"0513-0001-00005","name"=>"張三"]
];
$b=[
["sbnumber"=>"0513-0001-00001","name"=>"心安苑"],
["sbnumber"=>"0513-0001-00002","name"=>"中正苑"],
["sbnumber"=>"0513-0001-00003","name"=>"務實苑"],
["sbnumber"=>"0513-0001-00004","name"=>"服務苑"],
["sbnumber"=>"0513-0001-00007","name"=>"李四"]
];
$cmp=function($av,$bv){
$r=strcmp($av['sbnumber'],$bv['sbnumber']);
return$r===0?strcmp($av['name'],$bv['name']):$r;
};
$c=array_values(array_udiff($a,$b,$cmp));
$d=array_udiff($b,$a,$cmp);
foreach($das&$dv)$c[]=$dv;
unset($d);
var_mp($c);
array(2){
[0]=>array(2){["sbnumber"]=>string(15)"0513-0001-00005"["name"]=>string(6)"張三"}
[1]=>array(2){["sbnumber"]=>string(15)"0513-0001-00007"["name"]=>string(6)"李四"}
}
需要比兩次才能互相比出差集,再合並結果。還有這里的記錄間根據各項內容(比如名字)來確定不同,所以用自定義的對內容的比較規則..
『捌』 php兩個二維數組怎麼把相同鍵名的放到新數組裡面
foreach ($b as $nodeIndex => $oneNode)
{
foreach ($oneNode as $key => $value)
{
$a[$nodeIndex][$key] += $value;
}
}
print_r($a);
『玖』 php 兩個二維數組如何合並
2個一維數組是可以相加的 這個做法好處是保留了鍵值 另外一個辦法是用array_merge(數組1,數組2)函數 但是這個不會保持原有的鍵值