|
|
|
| Есть массив:
<?php
$my_array[0]['id']=5;
$my_array[0]['age']=18;
$my_array[1]['id']=6;
$my_array[1]['age']=19;
$my_array[2]['id']=7;
$my_array[2]['age']=20;
?>
|
Нужно отсортировать его по убыванию по age. Подскажите плиз как это можно реализовать. | |
|
|
|
|
|
|
|
для: sd607
(17.05.2007 в 02:38)
| | функция array_multisort() | |
|
|
|
|
|
|
|
для: mefestofel
(17.05.2007 в 03:20)
| | Вот Ваш код:
<?php
$my_array[0]['id']=5;
$my_array[0]['age']=18;
$my_array[1]['id']=7;
$my_array[1]['age']=20;
$my_array[2]['id']=6;
$my_array[2]['age']=19;
$my_array[3]['id']=7;
$my_array[3]['age']=21;
$my_array[4]['id']=7;
$my_array[4]['age']=17;
function multi_sort($my_array, $akey)
{
function compare($a, $b)
{
global $key;
if ($a[$key]>$b[$key]){
$var = "-1";
return $var;
}
elseif ($a[$key]<$b[$key]){
$var = "1";
return $var;
}
elseif ($a[$key]==$b[$key]){
$var = "0";
return $var;
}
}
usort($my_array, "compare");
return $my_array;
}
$my_array = multi_sort($my_array, $key = 'age');
print_r($my_array);
?>
|
| |
|
|
|
|
|
|
|
для: mefestofel
(17.05.2007 в 03:41)
| | За корявость не серчайте - уже 4.00 мозги кипят... | |
|
|
|
|
|
|
|
для: mefestofel
(17.05.2007 в 03:42)
| | Я тут ни в одной из своих книг Аррэй_мультисорт не могу найти..... я в панике...
Кстати в вашем коде я не увидел функции Аррэй_мультисорт, чем это вызвано?) | |
|
|
|
|
|
|
|
для: Valick
(17.05.2007 в 04:10)
| | я ее не использовал :-) | |
|
|
|
|
|
|
|
для: mefestofel
(17.05.2007 в 04:39)
| |
bool array_multisort ( array $ar1 [, mixed $arg [, mixed $... [, array $...]]] )
|
Returns TRUE on success or FALSE on failure.
array_multisort() can be used to sort several arrays at once, or a multi-dimensional array by one or more dimensions.
Associative (string) keys will be maintained, but numeric keys will be re-indexed.
The input arrays are treated as columns of a table to be sorted by rows - this resembles the functionality of SQL ORDER BY clause. The first array is the primary one to sort by. The rows (values) in that array that compare the same are sorted by the next input array, and so on.
The argument structure of this function is a bit unusual, but flexible. The first argument has to be an array. Subsequently, each argument can be either an array or a sorting flag from the following lists.
Sorting order flags:
SORT_ASC - Sort in ascending order
SORT_DESC - Sort in descending order
Sorting type flags:
SORT_REGULAR - Compare items normally
SORT_NUMERIC - Compare items numerically
SORT_STRING - Compare items as strings | |
|
|
|
|
|
|
|
для: mefestofel
(17.05.2007 в 04:40)
| | PHP4, PHP5 | |
|
|
|
|
|
|
|
для: mefestofel
(17.05.2007 в 04:41)
| | завтра дам ссылку, на вменяемый ресурс, да остался я один на форуме, все исчезли :-( | |
|
|
|
|
|
|
|
для: mefestofel
(17.05.2007 в 04:46)
| | Да я нашёл и ссылки, и всё такое... а вот в книгах нет((, а у меня их около 10 по РНР.
Просто в 3.20 я попытался при помощи Аррей_мультисорт решить задачу, к 3.35 сломал себе мозг, выключил комп лёг спать, в 3.45 включил комп увидел ваше решение немного успокоился))
Просто из-за недостаточности знаний я пытался работать с массивом как с множеством, и у меня бы в итоге получился довольно громоздский код. (и опять же скорее всего без Аррей_мультисорт) Работать с этим массивом как со списком я бы точно не догадался.
З.Ы. Липтону я не успел сказать самого главного - я не программист ;-) | |
|
|
|
|
|
|
|
для: Valick
(17.05.2007 в 08:09)
| | По работе с массивами, здесь есть описания функций для работы с массивами:
http://www.phpclub.net/manrus/f/ref.array.html
Да вообще много интересных функций, кторые редко используют... :-)
>З.Ы. Липтону я не успел сказать самого главного - я не программист ;-)
А кто же? ;-) | |
|
|
|