[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Массивы, сортировка - вопрос.
wollk
Добрый день. Подскажите пожалуйста. Когда я вывожу данные из БД, то запрос возвращает ассоциативный и простой массив. Можно ли как-то создать такой массив вручную:

$array_name["Алексей"]="Алексей";
$array_name["Юрий"]="Юрий";
$array_name["Иван"]="Иван";
asort($array_name);

И если написать $array_name[0], то ничего не выводит (((
Как сохранить и ассоциативные ключи и сделать числовые ?



Спустя 3 минуты, 46 секунд (11.11.2011 - 22:39) Winston написал(а):
Цитата (wollk @ 11.11.2011 - 21:35)
Можно ли как-то создать такой массив вручную:

Можно.
Цитата (wollk @ 11.11.2011 - 21:35)
И если написать $array_name[0], то ничего не выводит (((

А ты напиши
echo $array_name["Алексей"];




Спустя 1 минута, 17 секунд Winston написал(а):
Цитата (wollk @ 11.11.2011 - 21:35)
Как сохранить и ассоциативные ключи и сделать числовые ?

Вот так
$array_name["Алексей"]="Алексей";
$array_name["Юрий"]="Юрий";
$array_name["Иван"]="Иван";
$array_name[]="Алексей";
$array_name[]="Юрий";
$array_name[]="Иван";

Но зачем это? :blink:

Спустя 53 минуты, 42 секунды (11.11.2011 - 23:33) wollk написал(а):
Мне нужна сортировка, например у кого больше денег....
нельзя, что ли, так же , как и в БД. ?

Спустя 1 минута, 46 секунд (11.11.2011 - 23:35) sergeiss написал(а):
Цитата (wollk @ 11.11.2011 - 23:35)
Как сохранить и ассоциативные ключи и сделать числовые ?

Сделать это можно разными способами. Только я тоже не понял - зачем? Можно же (и нужно) с ассоциативными ключами работать.
Если надо циклом пройтись по массиву, то есть цикл foreach.

PS. Не вижу взаимосвязи между типами ключей и сортировкой по величине.

Спустя 3 минуты, 25 секунд (11.11.2011 - 23:38) wollk написал(а):
Просто чтобы после сортировки массива, я мог узнать имя первого, и его баланс.
Так есть какае-то хрень, чтобы это реализовать ?

Спустя 2 минуты, 2 секунды (11.11.2011 - 23:40) sergeiss написал(а):
Не вижу проблемы и не пойму, где её видишь ты smile.gif Делаешь сортировку и получаешь как величину, так и ключ "всплывшего" элемента.

Спустя 3 минуты, 11 секунд (11.11.2011 - 23:43) wollk написал(а):
Есть как бы ключ
Имя - значение, Имя - значени, Имя - значени

Когда я их отсортирую, мне нужно вывести array[0], но ничего не отображается ... о_О
П.С. Мне нужно вывести человека, у которого например больше всего денег, или рейтинг, или возраст

Спустя 4 минуты, 44 секунды (11.11.2011 - 23:48) sergeiss написал(а):
Так а нахрена тебе выводить my_array[0] (назову массив по-другому, чтобы не использовать зарезервированных слов ПХП)? Тебе сразу же после сортировки достаточно вывести так:
$first_val=each( my_array );

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

Подробнее см. хэлп по этой функции.

PS. Скачай мануал по ПХП и почитай про функции работы с массивами. Там уже очень много чего сделано, не надо "изобретать велосипед".

PPS. И самое-то главное и не сказал - как ты массив не сортируй, новых ключей там не появится - и это верно! Твой подход с "нулевым" индексом говорит о том, что ты привык работать с массивами в каком-то другом языке. Но запомни сразу, что в ПХП с массивами всё обстоит намного сложнее проще. Точнее говоря, по-другому :) Тут очень легко сделать так, что элемент с ключом "0" будет далеко не первым по порядку.

Спустя 2 часа, 47 минут, 5 секунд (12.11.2011 - 02:35) Invis1ble написал(а):
wollk
usort(), uasort() - какую угодно сортировку можешь задать. Подробнее - см. мануал.

Спустя 8 часов, 46 минут, 32 секунды (12.11.2011 - 11:22) wollk написал(а):
А то я не смотрел.

Спустя 2 часа, 38 минут, 10 секунд (12.11.2011 - 14:00) Guest написал(а):
А нельзя в запросе сделать сортировку??? :)

SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC

Спустя 1 минута, 1 секунда (12.11.2011 - 14:01) Aleks-prog написал(а):
А нельзя в запросе сделать сортировку??? :)

SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC



Спустя 2 минуты, 2 секунды (12.11.2011 - 14:03) Aleks-prog написал(а):
Ну а потом проходись по массиву в цикле
while($row = mysql_fetch_array ($query)){


и выводи то что тебе нужно, указывая в квадратных скобках поле которое нужно вывести:

echo $row['доход']

Спустя 3 часа, 33 минуты, 13 секунд (12.11.2011 - 17:36) wollk написал(а):
Так и придётся сделать. Просто интересно было, как отсортировать массив с ассоциативными ключами, и узнать кто на первом месте, на втором и т.д.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.