嗨,我有一個問題,我似乎無法找到答案。我有一個包含數組的數組,並且希望根據字段的相同值將這些子數組分組。這是我的代碼,並允許我根據值內的數組對數組進行排序。如何根據共享值對結果進行分組?我可能不會知道一些是基於日期的所有值,我想爲實例組所有每天/每月PHP按值排序數組中的數組
if($filter == "ORDER BY TODO_REF DESC"){
$type_sort = 0;
};
if($filter == "ORDER BY TODO_PRIO DESC"){
$type_sort = 2;
};
if($filter == "ORDER BY TODO_DEAD DESC"){
$type_sort = 3;
};
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($test_array, $type_sort);
print_r($test_array);
電流輸出:
priority
Array
(
[3] => Array
(
[0] => 2
[1] => sdfsdgdfgdfgdfg
[2] => 3
[3] => 2013-05-30 13:53:23
)
[2] => Array
(
[0] => 1
[1] => This must also be done
[2] => 4
[3] => 2013-03-28 12:13:34
)
[1] => Array
(
[0] => 1
[1] => testing this show me 2
[2] => 5
[3] => 2029-02-23 17:27:20
)
[0] => Array
(
[0] => 1
[1] => Do this task and make sure it gets done
[2] => 5
[3] => 2013-06-28 12:12:41
)
)
我想會是什麼東西像這樣,在那裏它們被基於子陣列鑰匙2分成獨立的數組:
Array
(
[3] => Array
(
[0] => 2
[1] => sdfsdgdfgdfgdfg
[2] => 3
[3] => 2013-05-30 13:53:23
)
)
Array
(
[2] => Array
(
[0] => 1
[1] => This must also be done
[2] => 4
[3] => 2013-03-28 12:13:34
)
)
Array
(
[1] => Array
(
[0] => 1
[1] => testing this show me 2
[2] => 5
[3] => 2029-02-23 17:27:20
)
[0] => Array
(
[0] => 1
[1] => Do this task and make sure it gets done
[2] => 5
[3] => 2013-06-28 12:12:41
)
)
所以我明白,這將做什麼是使2陣列。當我print_r $ test_array [0];我得到一個數組,但爲什麼這個數組等於1?也是這樣做是把它放在兩個數組,但似乎沒有這樣做的子數組值?另外,當我使用日期時,它將需要動態地添加更多的數組,因爲將有更多的值被分組。 – 2013-03-05 12:15:16
那麼你必須使用自動生成的'$ array [$ i]'而不是'$ array_1'和'$ array_2' – Raptor 2013-03-05 17:15:17