嗨,我有一个问题,我似乎无法找到答案。我有一个包含数组的数组,并且希望根据字段的相同值将这些子数组分组。这是我的代码,并允许我根据值内的数组对数组进行排序。如何根据共享值对结果进行分组?我可能不会知道一些是基于日期的所有值,我想为实例组所有每天/每月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