2016-06-10 7 views
-1

Добрый день, ребята,Сортировка субцента из многомерного массива

Посмотрел весь день для решения этой проблемы.

Мой массив выглядит так.

[status] => success 
[city] => Array 
    (
     [0] => Array 
      (
       [street] => Array 
        (
         [name] => 'las vegas' 
        ) 
      { 
     [1] => Array 
      (
       [street] => Array 
        (
         [name] => 'york' 
        ) 
      { 

моя проблема заключается в следующем, мне нужно
сортировать этот массив на основе [имя] (содержание образца «Лас-Вегас», «йорк»

уже сделали такие вещи, как
usort и uasort и к моему surpise, они не работают.

заранее спасибо!

UPDATE Sample код usort

foreach($myArr['city'] as $city) { 
     foreach($city['street'] as $street) { 
      function sort ($a, $b) { 
       return strcmp ($a['name'], $b['name']); 
      } 
     } 
} 

usort($myArr, 'sort'); 
+3

Покажите нам код с usort, потому что он должен работать – nospor

+0

Ваш массив не выглядит надлежащим, потому что есть открытие 'curly' скобки без закрытия' curly'brackets. – Ali

+0

sorry bro, это всего лишь образец моего массива, не означает, что это весь массив. –

ответ

1

usort должен работать в вашем случае. Проверьте свой код.
Возможно, вы не используете strcmp, чтобы отсортировать массив по названию.

Следующий код должен работать.

<?php 
$cities=array(
    array(
    "street"=> array (
     "name"=> 'las vegas' 
    ) 
    ), 
    array(
    "street"=> array (
     "name"=> 'C' 
    ) 
    ), 
    array(
    "street"=> array (
     "name"=> 'york' 
    ) 
    ), 
    array(
    "street"=> array (
     "name"=> 'A' 
    ) 
    ), 
    array(
    "street"=> array (
     "name"=> 'B' 
    ) 
    ), 
); 

function sortByName($a, $b) { 
    return strcmp($a["street"]["name"], $b["street"]["name"]); 
} 

usort($cities, 'sortByName'); 

?> 

https://eval.in/586734

+0

спасибо bud, но одна из проблем, массив, который я только что показал, - это не все, Это всего лишь часть массива, о которой я действительно забочусь. :( –

+0

Но если вы будете следовать той же процедуре, это должно сработать. –

+0

hmm. Если вы можете видеть, между «городом» и «улицей» есть «подстановочный знак», и это то, что мне нужно преодолеть. ( –

Смежные вопросы