[英]How to sort a multidimensional array in in php
我在php中有一個多維數組,我想根據輸入的時間對其進行排序,但是我不能這樣做,請給出一些想法。
Array
(
[0] => Array
(
[account_id] => 9
[entered] => 1369374812
)
[1] => Array
(
[account_id] => 9
[entered] => 1377587453
)
[2] => Array
(
[account_id] => 9
[entered] => 1373542381
)
[3] => Array
(
[account_id] => 9
[entered] => 1372988725
)
[4] => Array
(
[account_id] => 353
[entered] => 1380191316
)
[5] => Array
(
[account_id] => 9
[entered] => 1377587610
)
)
您可以使用array_multisort
//in PHP 5.5:
$rgOrder = array_column($rgData, 'entered');
array_multisort($rgOrder, SORT_ASC, $rgData);
如果您的PHP早於5.5,則:
$rgOrder = array_map(function($rgItem)
{
return $rgItem['entered'];
}, $rgData);
array_multisort($rgOrder, SORT_ASC, $rgData);
-您可以在這里找到小提琴。 如果您不想使用array_multisort
(因為它需要首先創建臨時數組),則可以執行以下操作:
usort($rgData, function($rgX, $rgY)
{
return $rgX['entered']>$rgY['entered']?-1:$rgX['entered']!=$rgY['entered'];
});
-在這里擺弄 。 所有示例至少需要PHP 5.3。 否則,您需要使用create_function
進行回調定義。
嘗試這個,
function aasort (&$array, $key) {
$sorter=array();
$ret=array();
reset($array);
foreach ($array as $ii => $va) {
$sorter[$ii]=$va[$key];
}
asort($sorter);
foreach ($sorter as $ii => $va) {
$ret[$ii]=$array[$ii];
}
$array=$ret;
}
aasort($your_array,"account_id");
您可以使用usort實現排序
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('log_errors', 0);
function compare($a, $b) {
if ( $a['entered'] == $b['entered'] ) {
return 0;
}
return ( $a['entered'] < $b['entered'] ) ? -1 : 1;
}
$a = array(
array('account_id' => 9, 'entered' => 1369374812),
array('account_id' => 9, 'entered' => 1377587453),
array('account_id' => 9, 'entered' => 1373542381)
);
usort($a, "compare");
print_r($a);
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.