[英]PHP Sorting Inner, Inner Array
好的,我有一個這樣的數組:
array {
[0] => array {
[0] => array {
["Time"] => "01:00:00"
}
[1] => array {
["Time"] => "00:00:00"
}
}
[1] => array {
[0] => array {
["Time"] => "01:00:00"
}
[1] => array {
["Time"] => "00:00:00"
}
}
}
現在我想要做的是按時間值對內部數組(具有時間值的數組)進行排序。 只是為了讓內部數組按時間值排序。 我該怎么做?
如果有幫助,我確實安裝了 PHP 5.3。
foreach ( $array as $key => &$part )
{
usort( &$part, function( $a, $b ) {
return strtotime($a['Time'])-strtotime($b['Time']) > 0;
});
}
試試這個:
$arr = array(array(array("Time" => "01:00:00"), array("Time" => "02:00:00"), array("Time" => "00:00:00")),
array(array("Time" => "02:00:00"), array("Time" => "01:00:00"), array("Time" => "00:00:00")));
$c = count($arr);
for ($i = 0; $i < $c; $i++) {
sort($arr[$i]);
}
var_dump($arr); // outputs desired array
function custom_map( $array ) {
usort( $array, function( $a, $b ) {
return strtotime($a['Time'])-strtotime($b['Time']) > 0;
});
return $array;
}
$new_array = array_map( "custom_map", $array );
我不認為對第二級進行排序會變得更簡單——迭代第一級並在每次出現時調用sort()
。 因為您的字符串大概是hh:ii:ss
,所以將它們作為簡單字符串進行比較是完全安全的(不需要strtotime()
)。
代碼:(演示)
$array = [
[
['Time' => "01:00:00"],
['Time' => "00:00:00"]
],
[
['Time' => "01:00:00"],
['Time' => "00:00:00"]
]
];
array_walk($array, 'sort');
var_export($array);
輸出:
array (
0 =>
array (
0 =>
array (
'Time' => '00:00:00',
),
1 =>
array (
'Time' => '01:00:00',
),
),
1 =>
array (
0 =>
array (
'Time' => '01:00:00',
),
1 =>
array (
'Time' => '00:00:00',
),
),
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.