php兩個數組組合
㈠ 如何合並在php對象的兩個數組
1.首先你的思路是正確的,這點可以肯定,合並數組可以使用array_merge() 這個...
2.如果鍵名有重復,該鍵的鍵值為最後一個鍵名對應的值(後面的覆蓋前面的
㈡ 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兩個相關的多維數組怎麼合並成一個數組
如果是兩個數組是相對應的,可以使用以下方法:
<?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下將多個數組合並成一個數組的方法與實例代碼
1.合並數組
array_merge()函數將數組合並到一起,返回一個聯合的數組。所得到的數組以第一個輸入數組參數開始,按後面數組參數出現的順序依次迫加。其形式為:
復制代碼
代碼如下:
array
array_merge
(array
array1
array2…,arrayN)
將一個或多個數組的單元合並起來,一個數組中的值附加在前一個數組的後面。返回作為結果的數組。
如果輸入的數組中有相同的字元串鍵名,則該鍵名後面的值將覆蓋前一個值。然而,如果數組包含數字鍵名,後面的值將不會覆蓋原來的值,而是附加到後面。
如果只給了一個數組並且該數組是數字索引的,則鍵名會以連續方式重新索引。
實例如下:
復制代碼
代碼如下:
$face
=
array("J","Q","K","A");
$numbered
=
array("2","3","4","5","6","7","8","9");
$cards
=
array_merge($face,
$numbered);
shuffle($cards);
print_r($cards);
這將返回如下所示的結果,運行代碼:
復制代碼
代碼如下:
Array
(
[0]
=>
A
[1]
=>
4
[2]
=>
9
[3]
=>
3
[4]
=>
K
[5]
=>
7
[6]
=>
5
[7]
=>
Q
[8]
=>
6
[9]
=>
8
[10]
=>
2
[11]
=>
J
)
2.遞歸追加數組
array_merge_recursive()函數與array_merge()相同,可以將兩個或多個數組合並在一起,形成一個聯合的數組.兩者之間的區別在於,當某個輸入數組中的某個鍵己經存在於結果數組中時該函數會採取不同的處理方式.array_merge()會覆蓋前面存在的鍵/值對,替換為當前輸入數組中的鍵/值對,而array_merge_recursive()將把兩個值合並在一起,形成一個新的數組,並以原有的鍵作為數組名。還有一個數組合並的形式,就是遞歸追加數組。其形式為:
view
sourceprint?array
array_merge_recursive(
array
key,array
values
)
示例如下:
復制代碼
代碼如下:
$class1
=
array("John"
=>
100,
"James"
=>
85);
$class2
=
array("Micky"
=>
78,
"John"
=>
45);
$classScores
=
array_merge_recursive($class1,
$class2);
print_r($classScores);
這將返回如下結果:
view
sourceprint?Array
(
[John]
=>
Array
(
[0]
=>
100
[1]
=>
45
)
[James]
=>
85
[Micky]
=>
78
)
3.連接兩個數組
array_combine()函數會得到一個新數組,它由一組提交的鍵和對應的值組成。其形式為:
view
sourceprint?array
array_merge(array
array1,array
array2[…,array
arrayN])
注意,兩個輸入數組必須大小相同,不能為空。示例如下:
復制代碼
代碼如下:
$abbreviations
=
array("AL","AK","AZ","AR");
$states
=
array("Alabama","Alaska","Arizona","Arkansas");
$stateMap
=
array_combine($abbreviations,$states);
print_r($stateMap);
這會返回:
復制代碼
代碼如下:
Array
(
[AL]
=>
Alabama
[AK]
=>
Alaska
[AZ]
=>
Arizona
[AR]
=>
Arkansas
)
㈤ 如何用Php把這兩個數組合並呢
java">我不是很清楚你是要怎麼合並,但是我推測是第二種效果
第一種效果:
<?php
$a=Array(
"28150000"=>Array(
0=>Array(
'keywordid'=>3653,
'keyword'=>'鮮花',
'orders_id'=>'81753'
),
'1'=>Array(
'keywordid'=>3653,
'keyword'=>'鮮花',
'orders_id'=>81757
)
)
,
"28160000"=>Array(
0=>Array(
'keywordid'=>3653,
'keyword'=>'鮮花',
'orders_id'=>81759
),
1=>Array(
'keywordid'=>3653,
'keyword'=>'鮮花',
'orders_id'=>81754
)
)
);
$b=Array(
"28150000"=>Array(
1=>Array(
'old_keywordid'=>11933,
'old_keyword'=>'鮮花'
)
),
"28160000"=>Array(
0=>Array(
'old_keywordid'=>12478,
'old_keyword'=>'鮮花'
)
)
)
;
//var_mp($a);
var_mp(array_replace_recursive($a,$b));
運行的結果:
array(size=2)
28150000=>
array(size=2)
0=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鮮花'(length=6)
'orders_id'=>string'81753'(length=5)
1=>
array(size=5)
'keywordid'=>int3653
'keyword'=>string'鮮花'(length=6)
'orders_id'=>int81757
'old_keywordid'=>int11933
'old_keyword'=>string'鮮花'(length=6)
28160000=>
array(size=2)
0=>
array(size=5)
'keywordid'=>int3653
'keyword'=>string'鮮花'(length=6)
'orders_id'=>int81759
'old_keywordid'=>int12478
'old_keyword'=>string'鮮花'(length=6)
1=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鮮花'(length=6)
'orders_id'=>int81754
第二 種效果
由於你的key是數字,即使是用字元串表示,在php的數組中也是數字,因此不能夠使用array_merge_recursive,真是麻煩,如果你是一維的,我可以寫一個函數,但是如果是多維的,就沒有辦法了
<?php
$a=Array(
"28150000"=>Array(
0=>Array(
'keywordid'=>3653,
'keyword'=>'鮮花',
'orders_id'=>'81753'
),
1=>Array(
'keywordid'=>3653,
'keyword'=>'鮮花',
'orders_id'=>81757
)
)
,
"28160000"=>Array(
0=>Array(
'keywordid'=>3653,
'keyword'=>'鮮花',
'orders_id'=>81759
),
1=>Array(
'keywordid'=>3653,
'keyword'=>'鮮花',
'orders_id'=>81754
)
)
);
$b=Array(
"28150000"=>Array(
1=>Array(
'old_keywordid'=>11933,
'old_keyword'=>'鮮花'
)
),
"28160000"=>Array(
0=>Array(
'old_keywordid'=>12478,
'old_keyword'=>'鮮花'
)
)
)
;
functionarray_merge_number($array1,$array2){
foreach($array1as$key=>&$val){
if($array2[$key]){
$val=array_merge($array2[$key],$val);
}
}
return$array1;
}
var_mp(array_merge_number($a,$b));
運行結果:
array(size=2)
28150000=>
array(size=3)
0=>
array(size=2)
'old_keywordid'=>int11933
'old_keyword'=>string'鮮花'(length=6)
1=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鮮花'(length=6)
'orders_id'=>string'81753'(length=5)
2=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鮮花'(length=6)
'orders_id'=>int81757
28160000=>
array(size=3)
0=>
array(size=2)
'old_keywordid'=>int12478
'old_keyword'=>string'鮮花'(length=6)
1=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鮮花'(length=6)
'orders_id'=>int81759
2=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鮮花'(length=6)
'orders_id'=>int81754
我很想寫一個能夠深度合並的函數,但是怎麼考慮都不合適,28160000是key值,並且是數字性的,記住array中key值只能是數字和字元串,28160000即使你寫成'28160000'也只會當成數字,你裡面的2 1 0也都是數字,很明顯,你不想要28160000被當成數字,但是你想要0 1 2被當成數字,這就很難辦了,如果你可以把28160000改成不能解析稱數字的字元串,那麼請用array_merge_recursive,這個已經足夠滿足你的需求了:
<?php
$a=Array(
"2815-0000"=>Array(
0=>Array(
'keywordid'=>3653,
'keyword'=>'鮮花',
'orders_id'=>'81753'
),
1=>Array(
'keywordid'=>3653,
'keyword'=>'鮮花',
'orders_id'=>81757
)
)
,
"2816-0000"=>Array(
0=>Array(
'keywordid'=>3653,
'keyword'=>'鮮花',
'orders_id'=>81759
),
1=>Array(
'keywordid'=>3653,
'keyword'=>'鮮花',
'orders_id'=>81754
)
)
);
$b=Array(
"2815-0000"=>Array(
1=>Array(
'keywordid'=>11933,
'old_keyword'=>'鮮花'
)
),
"2816-0000"=>Array(
0=>Array(
'old_keywordid'=>12478,
'old_keyword'=>'鮮花'
)
)
)
;
var_mp(array_merge_recursive($a,$b));
運行結果:
array(size=2)
'2815-0000'=>
array(size=3)
0=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鮮花'(length=6)
'orders_id'=>string'81753'(length=5)
1=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鮮花'(length=6)
'orders_id'=>int81757
2=>
array(size=2)
'keywordid'=>int11933
'old_keyword'=>string'鮮花'(length=6)
'2816-0000'=>
array(size=3)
0=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鮮花'(length=6)
'orders_id'=>int81759
1=>
array(size=3)
'keywordid'=>int3653
'keyword'=>string'鮮花'(length=6)
'orders_id'=>int81754
2=>
array(size=2)
'old_keywordid'=>int12478
'old_keyword'=>string'鮮花'(length=6)
如果你不能的話,那麼就使用我寫的那個函數
㈥ 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);
?>
註:當被合並的數組中有一個數組為空時,可能會出現合並後的數組也為空。
(6)php兩個數組組合擴展閱讀:
PHP常用函數
printf()函數輸出格式化的字元串。
print()函數輸出一個或多個字元串。
parse_str()函數把查詢字元串解析到變數中。
ord() 函數返回字元串第一個字元的 ASCII 值。
number_format()函數通過千位分組來格式化數字。
nl2br()函數在字元串中的每個新行 ( ) 之前插入 HTML 換行符 (<br />)。
nl_langinfo()函數返回指定的本地信息。
㈦ PHP兩個一維數組合並為二維數組
<?php
$arr1=array('足球','籃球');
$arr2=array('冰棒','雪糕');
//方法一:直接組合
$B=array($arr1,$arr2);
//方法二:鍵值組合
$C=array();
$C['運動項目']=$arr1;
$C['吃的']=$arr2;
//輸出看看
echo"<pre>";
print_r($B);
print_r($C);
//附加:當然,這兩個數組還可以在組合
$fujia=array();
$fujia['B方法']=$B;
$fujia['C方法']=$C;
echo"<hr/>";
print_r($fujia);
?>
㈧ php數組合並兩個數組(一個數組做鍵名,另一個做值) **key名字可以重復
php將兩個鍵名和鍵值的數組元素合並為一個數組
你好,有兩個方法可以實現:
一:
$arry_a=array(0,1,2);
$arry_b=array('dongsir','董先生','董先生的CSDN博客');
$arry_ab=[];
foreach($arry_bas$key=>$value){
$arry_ab[$arry_a[$key]]=$value;
}
echo"<pre>";
print_r($arry_ab);
輸出
Array
(
[0]=>dongsir
[1]=>董先生
[2]=>董先生的CSDN博客
)
第二個方法:
php將兩個鍵名和鍵值的數組元素合並為一個數組
Array
(
[a]=>dongsir,董先生
[c]=>董先生的CSDN博客
)
㈨ PHP如何把兩個數組結果合並在一起
首先你的思路是正確的,這點可以肯定,合並數組可以使用array_merge() 這個函數,
array_merge() 函數把兩個或多個數組合並為一個數組。
如果鍵名有重復,該鍵的鍵值為最後一個鍵名對應的值(後面的覆蓋前面的)。如果數組是數字索引的,則鍵名會以連續方式重新索引。
㈩ php 兩個數組,組合到一起
就是用array_merg來組合數組
$arr1=Array("Price" => 100,"Count" => 2);
$arr2=Array("Price" => 68,"Count" => 1);
$arr3=Array("ImageUrl" => "http://www..com/uploads/r/roynyj1423816159/3/4/d/a/thumb_54e05b04e4e1c.jpg","ItemName" => "藍瑪瑙","ItemDescription" =>"");
$arr4=Array("ImageUrl" => "http://www..com/uploads/r/roynyj1423816159/d/1/a/f/thumb_54e0609cb71b0.jpg","ItemName" => "可調大小硃砂雙魚手串","ItemDescription" =>"");
$data1=array_merge($arr1,$arr3);
$data2=array_merge($arr2,$arr4);
$datas=Array("7"=>$data1,"11"=>$data2);
print_r($datas);