『壹』 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);
『貳』 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下將多個數組合並成一個數組的方法與實例代碼
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數組合並 要保持兩個數組的鍵名都不變
鍵名如果都是唯一的.. 寫個循環來組一個新的數組就可以了:
$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_merge() 這個函數,
array_merge() 函數把兩個或多個數組合並為一個數組。
如果鍵名有重復,該鍵的鍵值為最後一個鍵名對應的值(後面的覆蓋前面的)。如果數組是數字索引的,則鍵名會以連續方式重新索引。
『陸』 php如何將字元串轉換成二維聯合數組
可以參考如下代碼:
<?php
$str="6009=2&6008=1&6007=2&6006=1&6005=1&";
$arr1=explode('&',$str,-1);
$arr2=array();
foreach($arr1as$item){
list($key,$value)=explode('=',$item);
$arr2[$key]=$value;
}
print_r($arr2);
我的 PHP 版本是5.5,測試結果如下:
『柒』 php 怎麼聲明數組
一、什麼是數組
數組就是一組數據的集合,把一系列數據組織起來,形成一個可操作的整體。數組的每個實體都包含兩項:鍵和值。
二、聲明數據
在PHP中聲明數組的方式主要有兩種:一是應用array()函數聲明數組,一是直接為數組元素賦值。
<1>array()函數聲明的數組的方式array([mixed...]) 參數mixed的語法為key=>value
如,<?php
$array=array("1"=>"編","2"=>"程","3"=>"詞","4"=>"典");
print_r($array);
echo "<br>";
echo $array[1]; //注意:下標默認是從0開始
echo $array[2];
echo $array[3];
echo $array[4];
?>
<2>直接為數組元素賦值。如果在創建數組時不知所創建數組的大小,或在實際編寫程序時數組的大小可能發生變化,採用這種數組創建的方法較好。
如,<?php
$array[1]="I";
$array[2]="love";
$array[3]="PHP";
print_r($array); //輸出所創建數組的結構
?>
三、數組的類型
PHP支持兩種數組:索引數組(indexed array)和聯合數組(associative array),前者使用數字作為鍵,後者使用字元串作為鍵。
四、輸出數組
在PHP中對數組元素輸出,可以通過echo和print語句來實現,但這只能對數組中某一元素進行輸出;要將數組結構輸出則要使用print_r()函數,其語法:print_r(mixed expression_r),參數expression_r為普通的整形、字元型或實型變數則輸出該變數本身,如果該參數為數組,則按一定鍵值和元素的順序顯示出該數組中的所有元素。
五、數組的構造
一維數組:
當一個數組的元素是變數時,則稱其為一維數組。
聲明一位數組: 類型說明符 數組名[常量表達式];
二維數組:
當一個數組的元素是一個一位數組時,則稱之為二維數組。
如,<?php
$str = array (
"網路編程語言"=>array ("PHP","JSP","ASP"),
"體育項目"=>array ("m"=>"足球","n"=>"籃球"));
print_r ( $str) ;
?>
六、遍歷數組
遍歷數組中的所有元素是常用的一種操作,在遍歷的過程中可以完成查詢或其他功能。在PHP中遍歷數組的方法有多種,下面介紹最常用的兩種方法。
<1>使用foreach結構遍歷數組;
<2>使用list()函數遍歷數組,list()函數僅能用於數字索引的數組,且數字索引從0開始。
例:綜合使用list()和each()認證用戶登錄:
<?php
//輸出用戶登錄信息
while(list($name,$value)=each($_POST)){
if($name!="submit"){
echo "$name=$value<br>";
}
}
?>
七、統計數組元素個數
在PHP中,使用count()函數對數組中的元素個數進行統計,語法為:int coun(mixed array[,int mode]),其中參數array為必要參數,mode為可選參數,若選中COUNT——RECURSIVE(或1),本函數將遞歸地對數組數組。如,
<?php
$array = array("php" => array("PHP函數參考大全","PHP程序開發範例寶典","PHP資料庫系統開發完全手冊"),
"asp" => array("ASP經驗技巧寶典")
); //聲明一個二維數組
echo count($array,COUNT_RECURSIVE);//遞歸統計數組元素的個數,運行結果為6
?>
八、數組排序
<1>使用sort()和rsort()分別對數組進行升序和降序,如,
<?php
$array=array(5,26,37,18,9,42,88,66);
$array1=sort($array);
for($i=0;$i<count($array);$i++){
echo $array[$i]."";
}
echo "<br>";
$array1=rsort($array);
for($i=0;$i<count($array);$i++){
echo $array[$i]." ";
}
?>
運行結果:
5 9 18 26 37 42 66 88
88 66 42 37 26 18 9 5
<2>使用ksort()和asort()對關聯數組排序
如果使用了相關數組,在排序後還要保持關鍵字和值的排序一致,這是就需要使用ksort()和asort()函
數,如,
<?php
$array=array('php'=>1,'jsp'=>2,'asp'=>3);
ksort($array);
print_r($array);
echo "<br>";
asort($array);
print_r($array);
?>
運行結果:
Array ( [asp] => 3 [jsp] => 2 [php] => 1 )
Array ( [php] => 1 [jsp] => 2 [asp] => 3 )
『捌』 php數組 關聯數組 怎麼寫
不同的情況有不同的寫法
介紹幾個操作PHP關聯數組的技巧。
1、添加數組元素
PHP是一種弱類型語言,這意味著你不需要顯示聲明一個數組及其大小,相反,你可以同時聲明並填充數組。
$capitals=array(
'Alabama'=>'Montgomery',
'Alaska'=>'Juneau',
'Arizona'=>'Phoenix'
);額外的數組元素可以象下面這樣追加:
$capitals['Arkansas']='LittleRock';如果你正在處理數字索引數組,你可能想使用顯示命名的函數前置和追加元素,如array_push()和array_unshift()函數,但這些函數不能操作關聯數組。
2、刪除數組元素
如果要從數組中刪除一個元素,請使用unset()函數,如:
unset($capitals['California']); 使用數字索引數組時,刪除數組元素的辦法更多,更靈活,可以使用array_shift()和array_pop()函數分別從數組的開頭和末尾刪除一個元素。
3、交換鍵和值
假設你想創建一個名叫$states的新數組,使用州府作為索引,使用州名作為關聯值,使用array_flip()函數很容易完成這個任務。
復制代碼代碼如下:
$capitals=array(
'Alabama'=>'Montgomery',
'Alaska'=>'Juneau',
'Arizona'=>'Phoenix'
);
$states=array_flip($capitals);
//$states=array(
//'Montgomery'=>string'Alabama',
//'Juneau'=>string'Alaska',
//'Phoenix'=>string'Arizona'
//);
4、合並數組
假設前面的數組由一個基於Web的「FlashCard」服務使用,你想提供一種方法測試學生對美國各州首府的掌握情況,你可以使用array_merge()函數合並包含州和首府的數組。
復制代碼代碼如下:
$stateCapitals=array(
'Alabama'=>'Montgomery',
'Alaska'=>'Juneau',
'Arizona'=>'Phoenix'
);
$countryCapitals=array(
'Australia'=>'Canberra',
'Austria'=>'Vienna',
'Algeria'=>'Algiers'
);
$capitals=array_merge($stateCapitals,$countryCapitals);
5、編輯數組值
假設在數組中的數據包含大小寫錯誤,在插入到資料庫之前,你想糾正這些錯誤,你可以使用array_map()函數給每個數組元素應用一個回調。
復制代碼代碼如下:
functioncapitalize($element)
{
$element=strtolower($element);
returnucwords($element);
}
$capitals=array(
'Alabama'=>'montGoMEry',
'Alaska'=>'Juneau',
'Arizona'=>'phoeniX'
);
$capitals=array_map("capitalize",$capitals);