我有一个这样的数组,如何按“名称”排序
Array (
[0] => Array (
[id] => 1
[name] => status_category_confide
)
[1] => Array (
[id] => 2
[name] => status_category_love
)
[2] => Array (
[id] => 3
[name] => status_category_household
)
[3] => Array (
[id] => 4
[name] => status_category_family
)
[4] => Array (
[id] => 5
[name] => status_category_friends
)
[5] => Array (
[id] => 6
[name] => status_category_colleague
)
[6] => Array (
[id] => 7
[name] => status_category_work
)
[7] => Array (
[id] => 8
[name] => status_category_ambition
)
)
我已经尝试过使用“排序”功能,但是它不起作用
$get_status_mood=mysqli_query($con, "select id, name from category");
while ($gsm=mysqli_fetch_array($get_status_mood)) {
//array_push($status_category, constant($gsm['name']));
$status_category[] = array(
"id"=>$gsm['id'],
"name"=>$gsm['name']
);
}
sort($status_category);
for ($i=0; $i<count($status_category); $i++) {
echo"<option value='".$status_category[$i]['id']."'>".$status_category[$i]['name']."</option>";
}
我想按名称顺序显示结果
答案 0 :(得分:6)
按选项尝试SQL顺序
$get_status_mood=mysqli_query($con, "select id, name from category order by name asc");
答案 1 :(得分:1)
您可以使用array_column
和array_multisort
函数对其进行排序。
$keys = array_column($array, 'name');
array_multisort($keys, SORT_ASC, $array);
答案 2 :(得分:0)
您可以尝试使用用户定义的比较函数对通过值排序的数组进行排序来进行尝试
function cmp($a, $b)
{
return strcmp($a["name"], $b["name"]);
}
usort($vc_array, "cmp");
答案 3 :(得分:0)
$a = array();
$a[] = array('id' => 1, 'name' => 'status_category_confide');
$a[] = array('id' => 2, 'name' => 'status_category_love');
$a[] = array('id' => 3, 'name' => 'status_category_household');
function cmp($x, $y) {
if (strcmp($x['name'], $y['name']) == 0) {
return 0;
}
return (strcmp($x['name'], $y['name']) < 0) ? -1 : 1;
}
usort($a, "cmp");
print_r($a);