1.array_flip交換陣列中的鍵和值
$arr=array('a'=>'ccj','b'=>'hh','c'=>'hh');
$arr1=array_flip($arr);
print_r($arr1);
2.array_intersect_assoc()帶索引檢查計算陣列的交集
$arr1=array('a'=>'green','b'=>'ccj','c'=>'blue','red'); $arr2=array('a'=>'green','b'=>'hi','blue','red');
$arr3=array_intersect_assoc($arr1,$arr2);
print_r($arr3);
3.array_merge 合併一個或多個陣列
$arr1=array('a'=>'hi',2,4);
$arr2=array(4,5,'a'=>'ccj',2,4);
$arr3=array_merge($arr1,$arr2);
print_r($arr3);
注:鍵名會被重新編號
$arr1=array();
$arr2 = array(1 => "data");
$arr3=array_merge($arr1,$arr2);
print_r($arr3);
//如果想完全保留原有陣列並只想新的陣列附加到後面,用+運算子
$arr1=array(0=>123,1=>456,2=>'ccj');
$arr2 = array(1 => "data",3=>'bear');
$arr3=$arr1+$arr2;
print_r($arr3);
4. array_multisort 對多個陣列或多位陣列進行排序
$ar1 = array(10, 100, 100, 0);
$ar2 = array(1, 3, 2, 4);
array_multisort($ar1, $ar2);
var_dump($ar1);
var_dump($ar2);
注:排序後,第一個陣列會包含 0、 10、 100、 100。 第二個陣列會包含 4、1、 2、 3。 第二個陣列裡的專案對應第一個陣列後也進行了排序(100 和 100)
//排序多維陣列
$arr = array(
array("10", 11, 100, 100, "a"),
array( 1, 2, "2", 3, 1)
);
array_multisort($arr[0],SORT_ASC,SORT_STRING,
$arr[1],SORT_NUMERIC,SORT_DESC);
var_dump($arr);
本例中在排序後,第一個陣列將變成 “10”,100,100,11,”a”(被當作字串以升序排列)。第二個陣列將包含 1, 3, “2”, 2, 1(被當作數字以降序排列)。
//實際運用
$data= array(
array('volume' => 67, 'edition' => 2),
array('volume' => 86, 'edition' => 1),
array('volume' => 85, 'edition' => 6),
array('volume' => 98, 'edition' => 2),
array('volume' => 86, 'edition' => 6),
array('volume' => 67, 'edition' => 7)
);
// 取得列的列表
foreach ($data as $key => $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
}
//排序
array_multisort($volume,SORT_DESC,
$edition,SORT_ASC,
$data);
var_dump($data);
5.array_pad 以指定長度將一個值填充進陣列
$input=array(12,10,8);
$arr1=array_pad($input,5,0);
print_r($arr1);
$arr2=array_pad($input,-7,1);
print_r($arr2);
$arr3=array_pad($input,2,'hi');
print_r($arr3);
本作品採用《CC 協議》,轉載必須註明作者和本文連結