## 數組處理目錄
[TOC=2,3]
* * * * *
* * * * *
* * * * *
- ## 根據相同值再分組
* * * * *
>[info]#### 1. 根據相同值再分組
~~~
原數組
$arr = array(
0 => array(
'initial' => 'A',
'typename' => '奧迪'
),
1 => array(
'initial' => 'F',
'typename' => 'F1'
),
2 => array(
'initial' => 'F',
'typename' => 'F2'
)
);
~~~
>[info]#### 2. 測試
- #### 使用
~~~
$result = array();
foreach ($arr as $k => $v) {
$result[$v['initial']][] = $v;
}
echo "<pre>";
var_dump($result);
echo "</pre>";
~~~
- #### 結果
~~~
array(2) {
["A"]=>array(1) {
[0]=>array(2) {
["initial"]=>string(1) "A"
["typename"]=> string(6) "奧迪"
}
}
["F"]=> array(2) {
[0]=>array(2) {
["initial"]=>string(1) "F"
["typename"]=>string(2) "F1"
}
[1]=>array(2) {
["initial"]=>string(1) "F"
["typename"]=> string(2) "F2"
}
}
}
~~~
* * * * *
* * * * *
* * * * *
- ## 根據某列對二維數組進行排序
* * * * *
>[info]#### 1. 根據某列對二維數組進行排序【array_sort】
~~~
/**
* 根據某列對二維數組進行排序
* @param unknown $arr
* @param unknown $row
* @param string $type
* @return multitype:unknown
*/
function array_sort($arr,$row,$type="asc"){
//定義一個臨時數組
$arr_temp=array();
foreach ($arr as $v){
$arr_temp[$v[$row]]=$v;//遍歷取出每個二維數組某列的值,重新構造以某列排序的臨時數組
}
if ($type=="asc") {
ksort($arr_temp);
}else {
krsort($arr_temp);
}
return $arr_temp;
}
~~~
>[info]#### 2. 測試
- #### 函數使用
~~~
$person=array(
array('id'=>2,'name'=>'zhangsan','age'=>20),
array('id'=>4,'name'=>'lisi','age'=>22),
array('id'=>3,'name'=>'wangwu','age'=>24),
);
$person=array_sort($person,'age','desc');
echo "<pre>";
print_r($person);
echo "<pre/>";
~~~
- #### 函數結果
~~~
Array
(
[24] => Array
(
[id] => 3
[name] => wangwu
[age] => 24
)
[22] => Array
(
[id] => 4
[name] => lisi
[age] => 22
)
[20] => Array
(
[id] => 2
[name] => zhangsan
[age] => 20
)
~~~