$arr = array("2dfg;63gf2;fgg4;423", "ase;1fse;few7;ewl5", "3weq;qeas4;qwry;k24q", "h3qwd;3eq2;84g21;23wsa","5sdk2;wur3;jiq7;xu47");
sort($arr);
Подскажите как отсортировать элементы, например, по третьей подстроке, отделенной ";"?
Спустя 6 минут, 54 секунды (3.06.2010 - 13:04) sergeiss написал(а):
Из хэлпа:
Цитата |
Описание bool usort ( array &$array , callback $cmp_function ) Эта функция сортирует элементы массива, используя для сравнения значений пользовательскую функцию. Если вам нужно отсортировать массив по необычному критерию, вы должны использовать эту функцию. |
Спустя 8 минут, 57 секунд (3.06.2010 - 13:13) LRCenter написал(а):
Спасибо большое!
А сортировка будет по возрастанию или убыванию?
А сортировка будет по возрастанию или убыванию?
Спустя 1 минута, 13 секунд (3.06.2010 - 13:14) DedMorozzz написал(а):
Не ну кашмар
В гугле "пхп работа с массивами" и есть ВСЕ функции для работы с массивами

Спустя 6 минут, 23 секунды (3.06.2010 - 13:20) LRCenter написал(а):
Да ладно вам)
Как в обратном порядке-то отсортировать, в справочнике нет функции, сортирующей как usort, только в обратном порядке.
Как в обратном порядке-то отсортировать, в справочнике нет функции, сортирующей как usort, только в обратном порядке.
Спустя 8 минут, 43 секунды (3.06.2010 - 13:29) DedMorozzz написал(а):
http://i-vd.org.ru/books/php/arrays.shtml#i там табличка!
Спустя 26 минут, 6 секунд (3.06.2010 - 13:55) sergeiss написал(а):
Цитата (LRCenter @ 3.06.2010 - 14:13) |
А сортировка будет по возрастанию или убыванию? |
Ты вот эту часть читал?
Цитата |
Эта функция сортирует элементы массива, используя для сравнения значений пользовательскую функцию. |
Более полное описание функции нашел? Думать пробовал, в частности, что делает пользовательская функция?
Спустя 1 час, 22 минуты, 41 секунда (3.06.2010 - 15:18) LRCenter написал(а):
Допустим я читаю csv в двумерный массив:
test.csv имеет содержимое:
В справочнике используют пример:
Но тут все пространство вложенного массива(строки) имеет имена столбцов, а как обратиться к нужному для сортировки столбцу в моем массиве?
$fd = fopen("test.csv", "r");
while (($arr = fgetcsv($fd, 1024, ";")) !== FALSE) {
$data[] = $arr;
}
fclose($fd);
test.csv имеет содержимое:
2dfg;63gf2;fgg4;eji5
ase;1fse;afew7;223j
3weq;qeas4;qwry;3jdu
h3qwd;3eq2;84g21;2udn
5sdk2;wur3;jiq7;38dn5
В справочнике используют пример:
function cmp($a, $b)
{
return strcmp($a["fruit"], $b["fruit"]);
}
$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";
usort($fruits, "cmp");
while (list($key, $value) = each($fruits)) {
echo "\$fruits[$key]: " . $value["fruit"] . "
";
}
Но тут все пространство вложенного массива(строки) имеет имена столбцов, а как обратиться к нужному для сортировки столбцу в моем массиве?
Спустя 11 минут, 40 секунд (3.06.2010 - 15:29) sergeiss написал(а):
М-да... Ты на форуме зарегистрирован уже более 2-х лет. А ты его читаешь хоть иногда? А хэлпы читаешь? 
Вот в этой функции, которая сравнивает, используй функцию explode (дважды, по разу для каждой строки!!!), чтобы выцепить нужный элемент. И сравнивай нужные тебе элементы строки.

Вот в этой функции, которая сравнивает, используй функцию explode (дважды, по разу для каждой строки!!!), чтобы выцепить нужный элемент. И сравнивай нужные тебе элементы строки.
Спустя 23 минуты, 39 секунд (3.06.2010 - 15:53) LRCenter написал(а):
Ну, я же не супер-мега спец, мне простительно
Так прикалываюсь на детском уровне иногда, интересно.
Так я ничего и не понял, но все равно спасибо, пойду еще пояндексю

Так прикалываюсь на детском уровне иногда, интересно.
Так я ничего и не понял, но все равно спасибо, пойду еще пояндексю

Спустя 31 минута, 22 секунды (3.06.2010 - 16:24) sergeiss написал(а):
Цитата (LRCenter @ 3.06.2010 - 16:53) |
Так прикалываюсь на детском уровне иногда, интересно. |
Давай я тоже приколюсь, тему закрою

_____________
Меньше кода - меньше багов ©