簡體   English   中英

PHP - 排序多維數組

[英]PHP - Sorting multi dimensional array

我有一個多維數組

Array
 (
[M] => Array
    (
        [0] => Array
            (
                [first] => Paul
                [last] => Martha
                [progress] => 100
                [id] => 85162
                [category] => M
            )

        [1] => Array
            (
                [first] => Bob
                [last] => Marley
                [progress] => 47
                [id] => 846523
                [category] => M
            )

    )

[M~F1] => Array
    (
        [0] => Array
            (
                [first] => Kenneth
                [last] => Rodriguez
                [progress] => 42
                [id] => 110273
                [category] => M~F1
            )

        [1] => Array
            (
                [first] => Jenifer
                [last] => Lopez
                [progress] => 0
                [id] => 485623
                [category] => M~F1
            )

    )

)

但是,我希望每個較小的數組根據其內部數組的鍵按字母順序排序。 以數組M為例。 我希望PHP通過按字母順序排列姓氏組件來組織其子組件。 因此,數組M將通過按字母順序排列子數組的子數組來組織其子數組。 完成后,它應如下所示:

Array
(
[M] => Array
    (
    [0] => Array
            (
                [first] => Bob
                [last] => Marley
                [progress] => 47
                [id] => 846523
                [category] => M
            )

        [1] => Array
            (
                [first] => Paul
                [last] => Martha
                [progress] => 100
                [id] => 85162
                [category] => M
            )

    )

[M~F1] => Array
    (
        [0] => Array
            (
        [first] => Jenifer
                [last] => Lopez
                [progress] => 0
                [id] => 485623
                [category] => M~F1
            )

        [1] => Array
            (
                [first] => Keneth
                [last] => Rodriguez
                [progress] => 42
                [id] => 110273
                [category] => M~F1
            )

    )

)

因此,回顧一下,我需要通過查看subsubsub數組來組織子數組,收集它的[last]鍵並從subsubsub數組的[last]鍵的alphabetization中對子子數組進行排序。

讓你定義的數組為$ x。

// first, define our comparison function
$cmp = function ($a, $b) {
  // sort by last name, first name
  $a = trim($a['last'] . ' ' . $a['first']);
  $b = trim($b['last'] . ' ' . $b['first']);
  return strcmp($a, $b);
};
foreach ($x as &$subx) {
  // initialize sub array with reference
  usort($subx, $cmp);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM