2011-01-11 4 views
0

Как я могу это сделать? Например, у меня есть $array, где я использую $array['name'] и $array['value'] Я могу сортировать $array по одной из атрибутов и выбрать ASC/DESC?

+0

Итак, вы '$ array ['name']' и '$ array ['value']' сами являются массивами, где '$ array ['name'] []' соответствует '$ array ['value'] [] '? – Archimedix

+0

Не могли бы вы привести пример вашего массива? Как описано, ваш массив имеет только две записи (с ключами «имя» и «значение») и сказать, что вы хотите сортировать его как «значение», не имеет смысла в этом контексте. Просьба уточнить. –

ответ

1

Чтобы отсортировать ассоциативный массив по ключу массива, вы можете использовать ksort функции() следующим образом:

<?php 

$narray["IBM"]="International Business Machines"; 
$narray["MS"]="Microsoft"; 
$narray["CA"]="Computer Associated"; 
$narray["WHO"]="World Health Organization"; 
$narray["UK"]="United Kingdon"; 
$narray["BA"]="Something Random"; 

ksort($narray); 

foreach($narray as $key => $value) 
{ 
print $key . " = " . $value . "<br />"; 
} 

?> 

Кроме того, вы можете отсортировать ассоциативный массив по ключу, в порядке возрастания, используя функцию krsort().

Источник: http://www.webcheatsheet.com/PHP/sorting_array.php

1

Вы можете использовать usort:

function my_array_sorter($a, $b) 
{ 
    return strcmp($a['name'], $b['name']); 
} 

usort($my_array, 'my_array_sorter'); 
1

Если вы имеете в виду вы используете ассоциативные массивы:

arsort($array) 

asort сортирует значения, arsort в обратном направлении.

ksort сортирует ключи, krsort в обратном порядке.