Отсортировать многомерный массив PHP

208
10 апреля 2018, 04:06

Есть массив:

array(191) {
  [1]=>
  array(8) {
    ["a"]=>
    string(3) "3"
    ["b"]=>
    string(53) "4"
    ["c"]=>
    string(31) "8"
  }
   [2]=>
    array(8) {
    ["a"]=>
    string(3) "5"
    ["b"]=>
    string(44) "666"
    ["c"]=>
    string(35) "69"
    ["d"]=>
    string(10) "777"
    }
}

вывожу требуемое циклом

foreach ($addressarray as $arr) {
        echo "
            раз: ".$arr['a']."<br />
            два: ".$arr['c']." <br />
            три: ".$arr['d'];
        }

Как отсортировать массив по значениям ["a"]? То есть, чтобы на выходе было:

раз: 3
два: 4
три: 8
раз: 5
два: 666
три: 69

Про sort и asort читал, но не сортирует по вложенному массиву почему-то(

Пример разбираемого массива:

array(191) {
  [1]=>
  array(8) {
    ["streetAddress"]=>
    string(53) "г.Жуковка, ул.Карла Маркса"
    ["region_name"]=>
    string(31) "Брянская область"
    ["city_name"]=>
    string(14) "Жуковка"
    ["workhours"]=>
    string(55) "пн-сб"
    ["phone"]=>
    string(11) "89123456789"
  }
  [2]=>
  array(8) {
    ["streetAddress"]=>
    string(44) "г.Анапа, ул.Крымская"
    ["region_name"]=>
    string(35) "Краснодарский край"
    ["city_name"]=>
    string(10) "Анапа"
    ["workhours"]=>
    string(55) "пн-сб"
  }

Здесь надо отсортировать по region_name Т.е. вывод адресов в алфавитном порядке

Answer 1

Можно отсортировать с помощью uasort():

$array = []; // Ваш массив

Пример для PHP >= 7:

uasort($array, function($a, $b){
    return $a["region_name"] <=> $b["region_name"];
});

Пример для PHP >= 5:

uasort($array, function($a, $b) {
    if ($a["region_name"] == $b["region_name"]) {
        return 0;
    }
    return ($a["region_name"] < $b["region_name"]) ? -1 : 1;
});

Просмотр массива после сортировки:

var_dump($array);
READ ALSO
PDO и Invalid parameter number: parameter was not defined in

PDO и Invalid parameter number: parameter was not defined in

Добрый день! не могу понять что вызывает данную ошибку, проверил запрос несколько раз, но вроде все верно:

178
Проблема с отправкой файла по почте РНР

Проблема с отправкой файла по почте РНР

Добрый деньПытаюсь отправить фаил - эксель, письмо приходит, но фаил 0кб и нет сообщения в письме, в чем проблема?

176
выдает ошибку Cannot use a scalar value as an array

выдает ошибку Cannot use a scalar value as an array

выдает ошибку Cannot use a scalar value as an array

159
Imagemagick и штриховка

Imagemagick и штриховка

Требуется, по строке, в которой задан стиль(цвет, стиль линии и заливки и тд

165