对一列上的php数组进行排序并输出到列表

对一列上的php数组进行排序并输出到列表,php,arrays,sorting,Php,Arrays,Sorting,我创建了一个从wordpress循环填充的数组:- <?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?> $alisting []["questions"] = $questions; $alisting []["id"] = $post->ID; $alisting []["title"] = $post->post

我创建了一个从wordpress循环填充的数组:-

<?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>

        $alisting []["questions"] = $questions; 
        $alisting []["id"] = $post->ID; 
        $alisting []["title"] = $post->post_title; 

<?php endwhile; ?>
我需要按问题降序排列此数组,并将其回送到列表中,以便:-

ID       | Title           |  Question

1023       Cash Commons       43
987        Videowtf           34

请有人帮我做清楚的说明好吗

谢谢你的帮助

干杯


Jonathan

使用array\u multisort

您需要使用函数
uasort()
--并创建回调函数进行排序

function sort_callback($a, $b){
    if ($a['Question'] == $b['Question']) {
        return 0;
    }
    return ($a['Question'] < $b['Question']) ? 1 : -1;
}

uasort($alisting,'sort_callback');
函数排序\u回调($a,$b){
如果($a['Question']=$b['Question'])){
返回0;
}
报税表($a['Question']<$b['Question'])?1:-1;
}
uasort($alisting,'sort_callback');

请详细说明答案并举例说明。@Mark我知道。wnoveno至少应该提供一个更好的答案。谢谢Mauris-似乎不起作用。我希望不是这么难。下面是使用以下命令的输出:-$length=count($alisting);对于($i=0;$i<$length;$i++){echo$alisting[$i]['questions'].
';}23 15 34 31 8hi Jonathan,我注意到你的关键是“questions”,而不是“Question”。您可能想检查一下…是的-我更改了sort_回调函数($a,$b){if($a['questions']==$b['questions']){return 0;}return($a['questions']<$b['questions'])?1:-1;}您好,我注意到这是因为您使用$I作为索引。索引不变,顺序不变。你可能想使用var_dump来查看它,或者使用foreach。这让我发疯了-为什么这么难-有人能帮我做一个可以工作的代码示例吗-我真的需要这个
function sort_callback($a, $b){
    if ($a['Question'] == $b['Question']) {
        return 0;
    }
    return ($a['Question'] < $b['Question']) ? 1 : -1;
}

uasort($alisting,'sort_callback');