本文目錄一覽:
php二維數組中按某個元素的值排序
//提供一個方法
class lib_BaseUtils{
static $s_field;
static $s_sc;
/**
* php 二維數組按鍵值排序
* @param array $a 需要排序的數組
* @param string $sort 排序的鍵值
* @param string $d 默認ASC,帶上參後為DESC
* @return boolean
*/
static function array_sort($a, $sort, $d=”) {
self::$s_field = $sort;
self::$s_sc = $d;
usort($a, array(“lib_BaseUtils”,”array_sort_callback”));
return $a;
}
//排序回調方法 請勿刪除
static function array_sort_callback($a, $b) {
$s_a = self::$s_sc ? $b : $a;
$s_b = self::$s_sc ? $a : $b;
$field = self::$s_field;
switch (true){
case (is_string($s_a[$field]) is_string($s_b[$field])):
return strcmp($s_a[$field], $s_b[$field]);
break;
default:
if($s_a[$field]== $s_b[$field]){
return 0;
}else{
return $s_a[$field]$s_b[$field]?-1:1;
}
}
}
}
調用方法
lib_BaseUtils::array_sort($lists, ‘app_down’,’desc’);
php 根據某個欄位對二維數組這個數組排序
試編寫代碼如下:
?php
$array[] = array(‘id’=1,’price’=50);
$array[] = array(‘id’=2,’price’=70);
$array[] = array(‘id’=3,’price’=30);
$array[] = array(‘id’=4,’price’=20);
foreach ($array as $key=$value){
$id[$key] = $value[‘id’];
$price[$key] = $value[‘price’];
}
array_multisort($price,SORT_NUMERIC,SORT_DESC,$id,SORT_STRING,SORT_ASC,$array);
echo ‘pre’;
print_r($array);
echo ‘/pre’;
?
運行結果:
Array
(
[0] = Array
(
[id] = 2
[price] = 70
)
[1] = Array
(
[id] = 1
[price] = 50
)
[2] = Array
(
[id] = 3
[price] = 30
)
[3] = Array
(
[id] = 4
[price] = 20
)
)
PHP中如何對二維數組按某個鍵值進行排序
你可以使用usort這個函數進行對$a[‘list’]進行處理
usort($a[‘list’],function($a,$b){ if($a[‘app_down’] == $b[‘app_down’])return 0; return $a[‘app_down’]$b[‘app_down’] ? 1 : -1; //如果發現結果是升序,1和-1對換下位置,記不太清了});
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/128222.html