array_multisort — 對多個陣列或多維陣列進行排序.其php 手冊中的說明如下:
bool array_multisort ( array &$arr [, mixed $arg = sort_asc [, mixed $arg = sort_regular [, mixed $... ]]] )
arr要排序的乙個 array。
arg接下來的每個引數可以是另乙個 array 或者是為之前 array 排序標誌選項引數: sort_asc, sort_desc, sort_regular, sort_numeric, sort_string.
…additional arg』s.
$array = array(
0=>array('id'=>8,'name'=>'tom'),
1=>array('id'=>9,'name'=>'peter'),
2=>array('id'=>5,'name'=>'jack')
);
$array = array(
0=>array('id'=>5,'name'=>'jack')
1=>array('id'=>8,'name'=>'tom'),
2=>array('id'=>9,'name'=>'peter')
);
function
sortarrbyonefield
(&$array, $field, $desc = false)
$sort = $desc == false ? sort_asc : sort_desc;
array_multisort($fieldarr, $sort, $array);
}
array(0=>8,1=>9,2=>5)
$arr = array(
'0' => array(
'id' => 3,
'age' => 27
),'1' => array(
'id' => 5,
'age' => 50
),'2' => array(
'id' => 4,
'age' => 44
),'3' => array(
'id' => 3,
'age' => 78
) );
foreach ( $arr
as$key => $row )
array_multisort($id, sort_asc, $age, sort_desc, $arr);
print_r($arr);
//result:array([0]=>array(['id']=>3 ['age']=>78) [1]=>array(['id']=>3 ['age']=>27) [2]=>array(['id']=>4 ['age']=>44) [3]=>array(['id']=>5 ['age']=>50))
$array1 = array(
1=>array('id'=>8,'name'=>'bed','age'=>17),
2=>array('id'=>5,'name'=>'cos','age'=>16),
3=>array('id'=>5,'name'=>'cos','age'=>14)
);function
sortarrbymanyfield
() $arr = array_shift($args);
if(!is_array($arr))
foreach($args
as$key => $field)
$args[$key] = $temp;}}
$args = &$arr;//引用值
call_user_func_array('array_multisort',$args);
return array_pop($args);
}$arr = sortarrbymanyfield($array1,'id',sort_asc,'name',sort_asc,'age',sort_desc);
print_r($arr);
array(4)
[1]=>array(3)
[2]=>array(3)
[3]=>array(3)
}
PHP指定欄位的多維陣列排序方法
php陣列排序可以用array multisort方法實現,但是如果是多維陣列,並且我們要指定陣列中的某個字段進行排序,那麼這就需要我們自己寫方法實現了。本文分享了一段php指定欄位的多維陣列排序方法的 這段 可實現根據field欄位對陣列進行排序。function sortarrbyfield a...
PHP多維陣列按指定鍵名排序
對多維陣列按指定鍵名進行排序 arr 要排序的原始陣列 key1 指定的主排序鍵名,eg id sort1 指定的主排序規則,eg sort numeric,sort desc key2 指定的輔排序鍵名,eg sort sort2 指定的輔排序規則,eg sort numeric,sort des...
php 多維陣列排序
之前在做乙個功能的時候,必須要把資料放到二維陣列裡並且排序,然後上網找找解決思路,這時候會用到array multisort函式,在那之前我都不知道有這個函式 array multisort 函式對多個陣列或多維陣列進行排序 先來看乙個例項 data array 0 array one 34,two...