Как я могу отсортировать двумерный массив по длине в PHP? - PullRequest
1 голос
/ 15 июля 2011

У меня есть массив строк, которые я хочу отсортировать в порядке убывания длины.Однако, это двумерный массив, и я не уверен, как реализовать функцию, которая будет делать то, что я хочу.

Вот пример массива:

Array
(
  [0] => Array
    (
      [0] => "abc"
      [1] => "def"
      [2] => "1234"
    )

  [1] => Array
    (
      [0] => "ghijkl"
      [1] => "092"
      [2] => "234234"
    )

  [2] => Array
    (
      [0] => "mn"
      [1] => "opq"
      [2] => "67843"
    )
)

Iменя интересует только длина первого элемента в подмассивах.Так что в идеале все должно выглядеть так:

Array
(
  [0] => Array
    (
      [0] => "ghijkl"
      [1] => "092"
      [2] => "234234"
    )
  [1] => Array
    (
      [0] => "abc"
      [1] => "def"
      [2] => "1234"
    )
  [2] => Array
    (
      [0] => "mn"
      [1] => "opq"
      [2] => "67843"
    )
)

Приветствует любую помощь, которую вы можете мне дать.

Ответы [ 2 ]

5 голосов
/ 15 июля 2011
usort($array, function ($a, $b) { return strlen($b[0]) - strlen($a[0]); });

(использует синтаксис PHP 5.3)

1 голос
/ 15 июля 2011
<?php

$your_array = array
(
  array
    (
      "abc",
      "def",
      "1234"
    ),

  array
    (
      "ghijkl",
      "092",
      "234234"
    ),
array
    (
      "mn",
      "opq",
      "67843"
    )
);

function customSort(Array $a, Array $b){         
     return strlen($b[0]) - strlen($a[0]);  
}

usort($your_array, 'customSort');
var_dump($your_array);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...