2013-02-21 2 views
0

У меня есть массив, который является чем-то вроде этого:Сортировка многомерного массива, основываясь на значении определенного ключа в массиве

$array[] = array(
     "name" => "sample", 
     "image" => "sample.jpg", 
     "header" => "sampleDelights", 
     "intro_copy" => "" 
    ); 
    $array[] = array(
     "name" => "lwmag", 
     "image" => "lwmag.jpg", 
     "header" => "LW Mag", 
     "intro_copy" => "" 
    ); 

Я хочу, чтобы отсортировать этот массив на основе алфавитного порядка от ключа «заголовка» с PHP. Я пробовал использовать и искал встроенные функции, но не могу найти его (или просматривая его). Возможно ли это с помощью одной функции php?

+0

http://php.net/usort, проверить пример # 2. –

+0

Возможный дубликат [Как отсортировать многомерный массив в php] (http://stackoverflow.com/questions/96759/how-do-i-sort-a-multidimensional-array-in-php) –

ответ

0

посмотреть на «ksort»

это очень полезно для организации массива по ключу.

<?php 
$sample = array("d" => "maximum", "a" => "minimum", "c" => "mid") 
ksort($sample); 
foreach ($sample as $key => $val) { 
echo "$key = $val \n"; 
} 
?> 

, что будет отображать

a = minimum 
c = mid 
d = maximum 

надеюсь, что это то, что вы после этого.

Источник: PHP Manual

0

Посмотрите на эту функцию от php.net

function array_sort($array, $on, $order=SORT_ASC) 
{ 
    $new_array = array(); 
    $sortable_array = array(); 

    if (count($array) > 0) { 
     foreach ($array as $k => $v) { 
      if (is_array($v)) { 
       foreach ($v as $k2 => $v2) { 
        if ($k2 == $on) { 
         $sortable_array[$k] = $v2; 
        } 
       } 
      } else { 
       $sortable_array[$k] = $v; 
      } 
     } 

     switch ($order) { 
      case SORT_ASC: 
       asort($sortable_array); 
      break; 
      case SORT_DESC: 
       arsort($sortable_array); 
      break; 
     } 

     foreach ($sortable_array as $k => $v) { 
      $new_array[$k] = $array[$k]; 
     } 
    } 

    return $new_array; 
} 
Смежные вопросы