PHP多維陣列指定多欄位排序

2021-08-19 21:32:32 字數 2256 閱讀 5527

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...