2016-05-14 3 views
0

Мне нужно отсортировать двоичный массив по длине строк, хранящихся в одном поле (шутка) во внутренних массивах.Сортировка трехмерного массива по длине строк PHP

Array(
    'type' => 'success', 
    'value => array (
     0 => array (
      'id' => 1 
      'joke' => 'Chuck Norris uses ribbed condoms inside out, so he gets the pleasure.'); 
     1 => array (
       'id' => 2 
       'joke' => 'MacGyver can build an airplane out of gum and paper clips. Chuck Norris can kill him and take it.'); 
    ); 
); 

Я судимый несколько способов, но я не могу получить это право

+0

так что вы хотите отсортировать только вложенный массив по 'joke' ключ? – RomanPerekhrest

ответ

1

Если вам нужно отсортировать массивы, используя нетривиальные Сравнения хорошей ставку будет использовать usort().

usort($array, function($a, $b) { 
    return strlen($a['joke']) > strlen($b['joke']); 
}); 
1

Если вы хотите отсортировать только вложенный массив по «шутке» ключ - usort функции будет выполнять работу:

usort($arr['value'], function($a,$b) { // $arr is your initial array 
    return mb_strlen($a['joke']) - mb_strlen($b['joke']); 
}); 

print_r($arr); 
Смежные вопросы