首頁 >後端開發 >php教程 >如何依內部數組值對多維 PHP 數組進行排序?

如何依內部數組值對多維 PHP 數組進行排序?

DDD
DDD原創
2024-11-03 06:21:03743瀏覽

How to Sort a Multi-Dimensional PHP Array by an Inner Array Value?

按內部數組值對多維PHP 數組進行排序

根據內部數組值對多維PHP 數組進行排序內部數組,您可以使用內部數組值自訂排序函數。

自訂排序函數:

<code class="php">function array_sort($array, $on, $order = SORT_ASC) {
    $new_array = [];
    $sortable_array = [];

    if (count($array) > 0) {
        foreach ($array as $key => $value) {
            if (is_array($value)) {
                foreach ($value as $key2 => $value2) {
                    if ($key2 == $on) {
                        $sortable_array[$key] = $value2;
                    }
                }
            } else {
                $sortable_array[$key] = $value;
            }
        }

        switch ($order) {
            case SORT_ASC:
                asort($sortable_array);
                break;
            case SORT_DESC:
                arsort($sortable_array);
                break;
        }

        foreach ($sortable_array as $key => $value) {
            $new_array[$key] = $array[$key];
        }
    }

    return $new_array;
}</code>

用法:

<code class="php">$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);

print_r($list);</code>

輸出:

輸出:
<code class="php">array(3) { [0]=> array(2) { ["type"]=> string(5) "suite" ["name"]=> string(6) "A-Name"    } [2]=> array(2) { ["type"]=> string(5) "suite" ["name"]=> string(6) "B-Name" } [1]=> array(2) { ["type"]=> string(5) "suite" ["name"]=> string(6) "C-Name" } }</code>
輸出:輸出:輸出:輸出:輸出:輸出:輸出:輸出:輸出:輸出:輸出: >

以上是如何依內部數組值對多維 PHP 數組進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:PHP 8.3 發布!下一篇:PHP 8.3 發布!