PHP Как мне сместить подмножество значений массива, чтобы сделать что-то вроде asort? - PullRequest
0 голосов
/ 19 июля 2010

Во-первых, я новичок в этом сайте, и это большая помощь, поэтому заранее спасибо за вклад.

Я пытаюсь сместить подмножество значений массива после их сравнения, например asort.

Вот что у меня есть:

$array[name] = "name";
$array[date] = "date";
$array[item1] = 7;
$array[item2] = 16;
$array[item3] = 3;
$array[item4] = 16;
$array[item5] = 2;
$array[item6] = 10;
$array[author] = "author";
$array[location] = "location';

Я бы хотел отсортировать значения itemsN путем сортировки значений, чтобы значения «16» находились в конце подмножества, а значения, отличные от «16», были в начале подмножества.

Итак, после сортировки я хочу получить:

$array[name] = "name";
$array[date] = "date";
$array[item1] = 7;
$array[item2] = 3;
$array[item3] = 2;
$array[item4] = 10;
$array[item5] = 16;
$array[item6] = 16;
$array[author] = "author";
$array[location] = "location';

Ответы [ 3 ]

0 голосов
/ 19 июля 2010

проверьте эту ссылку

http://www.php.happycodings.com/code_snippets/code9.html

0 голосов
/ 19 июля 2010

ArrayObject имеет метод asort():

$array->asort();
foreach ($array as $key => $value) {
    echo $key . ' - ' . $value . "\n";
}

Выходы:

1 - 2
2 - 2 
3 - 1
4 - 1
5 - 1
0 голосов
/ 19 июля 2010

Вы имеете в виду, что хотите "отсортировать массив в обратном порядке и поддерживать связь индекса"?

arsort($array)

Или, если вас не волнует сохранение связи ключ / значение:

rsort($array)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...