За последние 24 часа нас посетили 26709 программистов и 1482 робота. Сейчас ищут 964 программиста ...

сортировка массива

Тема в разделе "Прочие вопросы по PHP", создана пользователем oleg46, 2 сен 2013.

  1. oleg46

    oleg46 Активный пользователь

    С нами с:
    14 дек 2012
    Сообщения:
    15
    Симпатии:
    0
    Есть массив
    Код (Text):
    1.  
    2. [0]=>
    3.   array(5) {
    4.     ["
    5. address"]=>
    6.     string(28) "ул.Трубецкая 50а"
    7.     ["link"]=>
    8.     string(93) "info.ru/shops/detail/Moskovskaya-oblast/Vernyj-v-gBalashiha-ulTrubetckaya/"
    9.     ["lat"]=>
    10.     string(8) "55.83587"
    11.     ["lon"]=>
    12.     string(8) "37.96515"
    13.     ["distance"]=>
    14.     float(774047.177634)
    15.   }
    16.   [1]=>
    17.   array(5) {
    18.     ["
    19. address"]=>
    20.     string(23) "ул. Ленина, 101"
    21.     ["link"]=>
    22.     string(83) "info.ru/shops/detail/Sverdlovskaya-oblast/g-Pyshma-ulLenina-101/"
    23.     ["lat"]=>
    24.     string(8) "56.97511"
    25.     ["lon"]=>
    26.     string(8) "60.56583"
    27.     ["distance"]=>
    28.     float(2081922.47854)
    29.   }
    30.   [2]=>
    31.   array(5) {
    32.     ["
    33. address"]=>
    34.     string(40) "ул. Аэропортовская д. 4"
    35.     ["link"]=>
    36.     string(84) "info.ru/shops/detail/Leningradskaya-oblast/Vernyj-v-gVsevolozhsk/"
    37.     ["lat"]=>
    38.     string(8) "59.99487"
    39.     ["lon"]=>
    40.     string(8) "30.65114"
    41.     ["distance"]=>
    42.     float(1061207.27911)
    43.   }
    Как мне получить из него наименьшее значение distanse, 10 наименьших значений distance? Имеем ПХП 5.2. Спасибо.
     
  2. oleg46

    oleg46 Активный пользователь

    С нами с:
    14 дек 2012
    Сообщения:
    15
    Симпатии:
    0
    array_multisort
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    oleg46 и все-все-все. почему бы вам не представить данные в формате var_export, а не var_dump ?!!
    казалось бы то же самое, но можно просто скопировать в свой скрипт! вы же хотите чтобы вам помогли?

    Добавлено спустя 17 минут 45 секунд:
    Код (PHP):
    1. $distances = array_map(function($row) {return $row['distance'];}, $data);
    2. echo min($distances); // наименьшее значение
    3.  
    4. sort($distances, SORT_NUMERIC);
    5. $result = array_slice($distances, 0, 10);
    6. var_export($result); // 10 наименьших значений
    7.  
     
  4. oleg46

    oleg46 Активный пользователь

    С нами с:
    14 дек 2012
    Сообщения:
    15
    Симпатии:
    0
    Задача решилась, благодаря сортировке массива функцией array_multisort.
    В Вашем случае, я так понял, что получу только расстояние. А нужен весь вложенный массив.
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    и внезапно
    окей, вы победили