排序多维数组
$list = array_sort($list, 'name', SORT_ASC);
function array_sort($array, $on, $order = SORT_ASC)
{
$new_array = array();
$sortable_array = array();
if (count($array) > 0) {
foreach ($array as $k => $v) {
if (is_array($v)) {
foreach ($v as $k2 => $v2) {
if ($k2 == $on) {
$sortable_array[$k] = $v2;
}
}
} else {
$sortable_array[$k] = $v;
}
}
switch ($order) {
case SORT_ASC:
asort($sortable_array);
break;
case SORT_DESC:
arsort($sortable_array);
break;
}
foreach ($sortable_array as $k => $v) {
$new_array[$k] = $array[$k];
}
}
return $new_array;
}
//Prepare Array List
$list = array(
array('type' => 'suite', 'name' => 'A-Name'),
array('type' => 'suite', 'name' => 'C-Name'),
array('type' => 'suite', 'name' => 'B-Name'),
);
$list = array_sort($list, 'name', SORT_ASC);
答案 0 :(得分:0)
我看到你找到了一个解决方案,但万一我会写下我的答案,也许有人发现它很有用
<?php
$order_by = "asc";
$list = array(
array('type' => 'suite', 'name' => 'A-Name'),
array('type' => 'suite', 'name' => 'C-Name'),
array('type' => 'suite', 'name' => 'B-Name'),
);
usort($list, "customSort");
function customSort($a, $b) {
global $order_by;
$compare = strcmp($a['name'], $b['name']);
if($compare == 0) {
return 0;
} else if($compare > 0) {
if($order_by == "asc") {
return 1;
} else {
return -1;
}
} else if($compare < 0) {
if($order_by == "asc") {
return -1;
} else {
return 1;
}
}
}
echo "<pre>".print_r($list, true);