按特定键对数组进行排序

时间:2017-02-15 11:20:54

标签: php sorting

在我的下面的代码中,我想通过其键$v对数组title进行排序,其中只有数字值。

foreach ($archive_years as $key => $value) {
    $id = str_replace(' ', '', $key);
    echo '
        <button type="button" class="btn btn-info collapsible" data-toggle="collapse" data-target="#archiv_'. $id .'"><h3>'. $key .' </h3></button>
        <div id="archiv_'. $id .'" class="collapse">
            <ul>
    ';
    foreach ($value as $k => $v) {
        ksort($v);
        var_dump($v);
        if (get_page($v['id'])->post_content) {
            echo '<li><h4><a href="'. $v["permalink"] .'">'. $v["title"] .' - '. $v["titel"] .'</a></h4></li>';
        }
        else {
            echo '<li><h4>'. $v["title"] .' - '. $v["titel"] .'</h4></li>';
        }

    }
    echo '</ul></div>';
}

我尝试使用ksort($v);,但在这种情况下似乎无效。

这是echo "<pre/>";print_r($v);返回的内容: enter image description here

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

如果您需要自己的比较功能,则应使用usort

即。你可以尝试这样的事情:

usort($array, function($a, $b) {
    // should work, as title is numeric. to change the direction
    // just change $a and $b
    return $a['title'] - $b['title'];
});