導航:首頁 > 編程語言 > php排序函數二維數組

php排序函數二維數組

發布時間:2023-09-11 11:31:12

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二維數組自定義排序

functionpSort(&$arr)

{

$TimeSort=array();

foreach($arras$key=>$value){

$TimeSort[$key]=$value['age'];

}

asort($TimeSort);

$data=array();

foreach($TimeSortas$key=>$value){

$data[]=$arr[$key];

}

$i=0;

foreach($arras$k=>$v){

$arr[$k]=$data[$i];

$i++;

}

return$arr;

}

主要部分,你也可以考慮用那個多為數組排序的那個函數,上面這個是我前幾天自己寫的,不知道在你這能用不


Ⅲ php排序問題 二維數組排序

這種直接排序是ikending不行的,只能自己遍歷用邏輯來實現

Ⅳ PHP關於二維數組排序的問題!求大神幫忙

我用的是冒泡演算法,代碼如下:

<?php
$arr=array(
array(
'id'=>1,
'num'=>3,
'time'=>1522131034
),
array(
'id'=>2,
'num'=>7,
'time'=>1522132034
),
array(
'id'=>3,
'num'=>7,
'time'=>1522133034
),
array(
'id'=>4,
'num'=>7,
'time'=>1522134034
),
array(
'id'=>5,
'num'=>10,
'time'=>1522135034
),
array(
'id'=>6,
'num'=>0,
'time'=>1522136034
)
);
$t=count($arr);
$tmp=array();
for($i=0;$i<$t;$i++)
{
for($j=$i+1;$j<$t;$j++)
{
if($arr[$i]['num']>$arr[$j]['num'])
{
$tmp=$arr[$i];
$arr[$i]=$arr[$j];
$arr[$j]=$tmp;
}elseif($arr[$i]['num']==$arr[$j]['num'])
{
if($arr[$i]['time']>$arr[$j]['time'])
{
$tmp=$arr[$i];
$arr[$i]=$arr[$j];
$arr[$j]=$tmp;
}
}
}
}
print_r($arr);
?>

Ⅳ thinkPHP二維數組排序

從兩個不同的表中獲取各自的4條數據,然後整合(array_merge)成一個數組,再根據數據的創建時間降序排序取前4條。
遇到這個要求的時候就不是 ORDER BY 能解決的問題了。因此翻看 PHP 手冊查找到了如下方法,做此筆記。
廢話少說,奉上代碼,清單如下:
[php] view plain
<?php
/**
* 二維數組根據某個欄位排序
* 功能:按照用戶的年齡倒序排序
* @author ruxing.li
*/
header('Content-Type:text/html;Charset=utf-8');
$arrUsers = array(
array(
'id' => 1,
'name' => '張三',
'age' => 25,
),
array(
'id' => 2,
'name' => '李四',
'age' => 23,
),
array(
'id' => 3,
'name' => '王五',
'age' => 40,
),
array(
'id' => 4,
'name' => '趙六',
'age' => 31,
),
array(
'id' => 5,
'name' => '黃七',
'age' => 20,
),
);

$sort = array(
'direction' => 'SORT_DESC', //排序順序標志 SORT_DESC 降序;SORT_ASC 升序
'field' => 'age', //排序欄位
);
$arrSort = array();
foreach($arrUsers AS $uniqid => $row){
foreach($row AS $key=>$value){
$arrSort[$key][$uniqid] = $value;
}
}
if($sort['direction']){
array_multisort($arrSort[$sort['field']], constant($sort['direction']), $arrUsers);
}

var_mp($arrUsers);

/*
輸出結果:

array (size=5)
0 =>
array (size=3)
'id' => int 5
'name' => string '黃七' (length=6)
'age' => int 20
1 =>
array (size=3)
'id' => int 2
'name' => string '李四' (length=6)
'age' => int 23
2 =>
array (size=3)
'id' => int 1
'name' => string '張三' (length=6)
'age' => int 25
3 =>
array (size=3)
'id' => int 4
'name' => string '趙六' (length=6)
'age' => int 31
4 =>
array (size=3)
'id' => int 3
'name' => string '王五' (length=6)
'age' => int 40

*/

Ⅵ PHP中怎麼根據二維數組中的子數組的某個元素進行排序

//先用array_column 多維數組按照縱向(列)取出
$date = array_column($arr, '0');
//上面得到的結果:array()
//再用array_multisort 結合array_column得到的結果對$arr進行排序
array_multisort($date,SORT_ASC,$arr);

閱讀全文

與php排序函數二維數組相關的資料

熱點內容
壓縮文件zip怎麼解壓不了 瀏覽:390
如何看蘋果appstore軟體是否收費 瀏覽:463
android發送字元串 瀏覽:13
python3最好的書籍推薦 瀏覽:684
藍牙模塊與單片機連接 瀏覽:665
mssql命令大全 瀏覽:193
mpv伺服器怎麼樣 瀏覽:599
伺服器遷移後怎麼恢復 瀏覽:249
在vfp中如何顯示和隱藏命令 瀏覽:283
如何部署地圖伺服器 瀏覽:737
安卓系統雲閃付哪個app好用 瀏覽:111
程序員一天完成幾個需求 瀏覽:960
請運行命令來卸載oracle 瀏覽:243
知識問答哪個app好 瀏覽:398
數控銑床編程代碼大全 瀏覽:869
程序員相親被罵 瀏覽:810
r6單片機 瀏覽:614
牛客編程題怎麼評分 瀏覽:189
希沃白板怎麼在安卓重置系統 瀏覽:845
python處理json過大 瀏覽:260