最后对具有空值的多维数组进行排序

问题描述 投票:0回答:2

我想将多维数组值从非空排序到空。我想对我的多维数组进行排序,如果街道、邮政编码等地址字段为空,那么它们应该显示在最后一页。

php arrays sorting multidimensional-array
2个回答
2
投票
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;
}

类似的东西对我有用 (或多或少复制粘贴自 http://php.net/manual/en/function.sort.php


0
投票

我不确定 PHP,但一般来说,我会说你需要对数组进行切片,以便将

null
集与非
null
集分开,然后根据你的条件对非
null
集进行排序,然后将其与
null
集合并。

© www.soinside.com 2019 - 2024. All rights reserved.