电流输出(分类但未分组):
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" )
)
Array
(
[3] => Array (
[0] => Array ( [0] => 2, [1] => "sdfsdgdfgdfgdfg", [2] => 3, [3] => "2013-05-30 13:53:23" )
)
[4] => Array (
[0] => Array ( [0] => 1, [1] => "This must also be done", [2] => 4, [3] => "2013-03-28 12:13:34" )
)
[5] => Array (
[0] => Array ( [0] => 1, [1] => "testing this show me 2", [2] => 5, [3] => "2029-02-23 17:27:20" )
[1] => Array ( [0] => 1, [1] => "Do this task and make sure it gets done", [2] => 5, [3] => "2013-06-28 12:12:41" )
)
)
如何通过保持分类功能在KEY [2]上通过其共享值来修改代码?
$array_1 = array();
$array_2 = array();
foreach($test_array as $item) {
if($item[0] == 1) {
$array_1[] = $item;
} elseif($item[0] == 2) {
$array_2[] = $item;
}
}
$final_array = array($array_1, $array_2);
必须有更优化的代码,但这应该满足您的需求。
array_multisort()
是您所追求的,它允许您通过子数组对主数组进行排序并维护键值链接
I使用以下来对一个相当大的多维数组排序,这些数组基于排序订单箭头/desc在具有许多列和可排序列的表上。 它的一团糟,但您应该能够跟随它。
if (strlen($_GET['col'])<1) {
foreach ($dataarray as $key => $row) {
$spend[$key] = $row[6];
}
array_multisort($spend, SORT_DESC, $dataarray);
} else if ($_GET['col']=="spend"){
foreach ($dataarray as $key => $row) {
$spend[$key] = $row[3];
}
if ($_GET['order']=="asc") {
array_multisort($spend, SORT_ASC, $dataarray);
} else {
array_multisort($spend, SORT_DESC, $dataarray);
}
} else if ($_GET['col']=="name"){
foreach ($dataarray as $key => $row) {
$name[$key] = $row[1];
}
if ($_GET['order']=="asc") {
array_multisort($name, SORT_ASC, $dataarray);
} else {
array_multisort($name, SORT_DESC, $dataarray);
}
} else if ($_GET['col']=="avg"){
foreach ($dataarray as $key => $row) {
$avg[$key] = $row[4];
}
if ($_GET['order']=="asc") {
array_multisort($avg, SORT_ASC, $dataarray);
} else {
array_multisort($avg, SORT_DESC, $dataarray);
}
} else if ($_GET['col']=="sites"){
foreach ($dataarray as $key => $row) {
$sites[$key] = $row[5];
}
if ($_GET['order']=="asc") {
array_multisort($sites, SORT_ASC, $dataarray);
} else {
array_multisort($sites, SORT_DESC, $dataarray);
}
} else if ($_GET['col']=="rate"){
foreach ($dataarray as $key => $row) {
$rate[$key] = $row[6];
}
if ($_GET['order']=="asc") {
array_multisort($rate, SORT_ASC, $dataarray);
} else {
array_multisort($rate, SORT_DESC, $dataarray);
}
} else {
foreach ($dataarray as $key => $row) {
$spend[$key] = $row[2];
}
array_multisort($spend, SORT_DESC, $dataarray);
}
thy比确定排序/分组列的条件的一个块,我总是建议查找阵列,然后是非常快速的调用。 我发现这种语法更简洁,更可读性,更易于维护。 因此,对分组的数据进行了正确的排序,请提前对数据进行排序(虽然仍然以其简单的形式)。
if-elseif-elseif-elseif...else
isset()
变量传递到具有$groupsort
删除临时识别密钥(如果需要)。
代码:(
use
输出:
$row