[Решено] сортировка многомерного массива по значению

Тема в разделе "PHP", создана пользователем cherkas, 8 сен 2019.

Статус темы:
Закрыта.
  1. cherkas

    cherkas

    Регистрация:
    25 фев 2013
    Сообщения:
    451
    Симпатии:
    57
    Здравствуйте, есть массив


    подскажите как отсортировать расположение массивов по индексу [1] этих массивов

    т.е. чтобы получилось так
     
    Последнее редактирование: 8 сен 2019
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    в лоб
    PHP:
    <?php

    $array 
    = [
        [
            
    => 1,
            
    => 2,
            
    => 3,
        ],
        [
            
    => 1,
            
    => 2,
            
    => 0,
        ],
    ];

    foreach (
    $array as &$item) {
        
    ksort($item);
    }

    var_dump($array);
     
  3. cherkas

    cherkas

    Регистрация:
    25 фев 2013
    Сообщения:
    451
    Симпатии:
    57
    нет Вы не правильно поняли, мне нужно не по индексу сортировать а по значению в индексе, при этом номер индекса выбирать

    т.е. если проще, то есть csv фаил который нужно отсортировать по определенному столбцу, в примере ниже это столбец 3

    текст1, текст1, 3, текст1, текст1...
    текст2, текст2, 2, текст2, текст2...
    текст3, текст1, 3, текст3, текст3...
    текст4, текст4, 8, текст4, текст4...
    текст5, текст5, 1, текст5, текст5...

    я это всё загоняю в многомерный массив, и в принципе могу по уровню своих знаний написать длинный код с пузырьковой сортировкой, но я уверен, что есть решение гораздо проще
     
    Последнее редактирование: 8 сен 2019
  4. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    не продолжайте :Biggrin:
    PHP:
    <?php

    $array 
    = [
        [
          
    => "text1",
          
    => 10
       
    ],
       [
          
    => "text2",
          
    => 20,
       ],
       [
          
    => "text3",
          
    => 18,
       ],
       [
          
    => "text4",
          
    => 15,
       ],
       [
          
    => "text5",
          
    => 10,
       ]
    ];


    $ids = [];

    foreach(
    $array as $key => $item) {
        
    $ids[$key] = $item[1];
    }

    array_multisort($idsSORT_ASCSORT_NUMERIC$array);

    var_dump($array);
     
    cherkas нравится это.
  5. cherkas

    cherkas

    Регистрация:
    25 фев 2013
    Сообщения:
    451
    Симпатии:
    57
    спасибо, работает ))
     
Статус темы:
Закрыта.