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

Тема в разделе "Как сделать...", создана пользователем yavasilek, 22 авг 2013.

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

    yavasilek vasilek_gorbunok

    Регистр.:
    5 окт 2008
    Сообщения:
    1.174
    Симпатии:
    424
    Всем привет.
    Есть массив $arr
    Код:
    echo "<pre>";
    print_r($arr);
    echo "</pre>";
    
    Выводит
    Код:
    Array
    (
        [0] => i_8656190918
        [1] => jpg
    )
    Array
    (
        [0] => i_8656191010
        [1] => jpg
    )
    Array
    (
        [0] => i_8653509911
        [1] => jpg
    )
    Array
    (
        [0] => index
        [1] => php
    )
    Array
    (
        [0] => i_8623698153
        [1] => jpg
    )
    Array
    (
        [0] => i_8630235144
        [1] => jpg
    )
    Array
    (
        [0] => i_8634942403
        [1] => jpg
    )
    Array
    (
        [0] => i_8634942441
        [1] => jpg
    )
    Array
    (
        [0] => i_8653509956
        [1] => jpg
    )
    Array
    (
        [0] => i_8656190978
        [1] => jpg
    )
    Array
    (
        [0] => i_8623698020
        [1] => jpg
    )
    Array
    (
        [0] => i_8634942386
        [1] => jpg
    )
    Array
    (
        [0] => info
        [1] => dat
    )
    Array
    (
        [0] => i_8623698028
        [1] => jpg
    )
    Array
    (
        [0] => i_8623698162
        [1] => jpg
    )
    Array
    (
        [0] =>
        [1] =>
        [2] =>
    )
    Array
    (
        [0] => i_8656190952
        [1] => jpg
    )
    Array
    (
        [0] => i_8634942410
        [1] => jpg
    )
    Array
    (
        [0] => i_8623698115
        [1] => jpg
    )
    Array
    (
        [0] => i_8635726040
        [1] => jpg
    )
    Array
    (
        [0] => i_8623698090
        [1] => jpg
    )
    Array
    (
        [0] => i_8656191002
        [1] => jpg
    )
    Array
    (
        [0] => i_8623698043
        [1] => jpg
    )
    Array
    (
        [0] => i_8643914436
        [1] => jpg
    )
    Array
    (
        [0] => namedb
        [1] => dat
    )
    Array
    (
        [0] => i_8634942365
        [1] => jpg
    )
    Array
    (
        [0] => i_8653509928
        [1] => jpg
    )
    Array
    (
        [0] => i_8656191058
        [1] => jpg
    )
    Array
    (
        [0] => i_8623698106
        [1] => jpg
    )
    Array
    (
        [0] => i_8630235134
        [1] => jpg
    )
    Array
    (
        [0] => i_8630235125
        [1] => jpg
    )
    Array
    (
        [0] => i_8656190967
        [1] => jpg
    )
    Array
    (
        [0] => i_8634942379
        [1] => jpg
    )
    Array
    (
        [0] => i_8656191035
        [1] => jpg
    )
    Array
    (
        [0] => i_8623698180
        [1] => jpg
    )
    Array
    (
        [0] => i_8623698143
        [1] => jpg
    )
    Array
    (
        [0] => thumb
    )
    Array
    (
        [0] => i_8638024869
        [1] => jpg
    )
    Array
    (
        [0] => i_8623698035
        [1] => jpg
    )
    Array
    (
        [0] => i_8643914441
        [1] => jpg
    )
    Array
    (
        [0] =>
        [1] =>
    )
    Array
    (
        [0] => i_8656190989
        [1] => jpg
    )
    Array
    (
        [0] => i_8634942428
        [1] => jpg
    )
    Array
    (
        [0] => i_8623698098
        [1] => jpg
    )
    Array
    (
        [0] => i_8630235116
        [1] => jpg
    )
    Array
    (
        [0] => i_8634942434
        [1] => jpg
    )

    Как все это дело отсортировать по ключу [0] ?
     
  2. BDSG

    BDSG

    Регистр.:
    28 фев 2009
    Сообщения:
    203
    Симпатии:
    109
    PHP:
    usort$array, function( $a$b ){

        if( 
    $a[0] == $b[0] ) return 0;

        return ( 
    $a[0] < $b[0] ) ? -1;
    });
     
    yavasilek нравится это.
  3. yavasilek

    yavasilek vasilek_gorbunok

    Регистр.:
    5 окт 2008
    Сообщения:
    1.174
    Симпатии:
    424
    белый экран - вывод ошибок отключен ((
     
  4. BDSG

    BDSG

    Регистр.:
    28 фев 2009
    Сообщения:
    203
    Симпатии:
    109
    что-то не так делаете.. ниже код полностью (массив из вашего дампа).. рабочий, проверил..
    PHP:
    $arr = array(
        array
        (
            
    'i_8656190918',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8656191010',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8653509911',
            
    'jpg'
        
    ),
        array
        (
            
    'index',
            
    'php'
        
    ),
        array
        (
            
    'i_8623698153',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8630235144',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8634942403',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8634942441',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8653509956',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8656190978',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8623698020',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8634942386',
            
    'jpg'
        
    ),
        array
        (
            
    'info',
            
    'dat'
        
    ),
        array
        (
            
    'i_8623698028',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8623698162',
            
    'jpg'
        
    ),
        array
        (
            
    '',
            
    '',
            
    '',
        ),
        array
        (
            
    'i_8656190952',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8634942410',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8623698115',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8635726040',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8623698090',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8656191002',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8623698043',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8643914436',
            
    'jpg'
        
    ),
        array
        (
            
    'namedb',
            
    'dat'
        
    ),
        array
        (
            
    'i_8634942365',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8653509928',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8656191058',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8623698106',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8630235134',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8630235125',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8656190967',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8634942379',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8656191035',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8623698180',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8623698143',
            
    'jpg'
        
    ),
        array
        (
            
    'thumb'
        
    ),
        array
        (
            
    'i_8638024869',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8623698035',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8643914441',
            
    'jpg'
        
    ),
        array
        (
            
    '',
            
    ''
        
    ),
        array
        (
            
    'i_8656190989',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8634942428',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8623698098',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8630235116',
            
    'jpg'
        
    ),
        array
        (
            
    'i_8634942434',
            
    'jpg'
        
    ) );

    usort$arr, function ( $a$b ){

        if( 
    $a] == $b] ) return 0;

        return ( 
    $a] < $b] ) ? -1;
    } );

    var_dump$arr );
     
    yavasilek нравится это.
  5. yavasilek

    yavasilek vasilek_gorbunok

    Регистр.:
    5 окт 2008
    Сообщения:
    1.174
    Симпатии:
    424
    скопировал и вставил - ошибка сервера.
    Может версия php виновата?
    PHP Version 5.2.17-pl0-gentoo

    на другом сервере работает на ура, а на этом нет ((
     
    Последнее редактирование модератором: 22 авг 2013
  6. BDSG

    BDSG

    Регистр.:
    28 фев 2009
    Сообщения:
    203
    Симпатии:
    109
    в версиях <5.3 нет анонимных функций (только лямбда).. для них так:
    PHP:
    function cmp$a$b ){ // лучше переименовать в соответствии с контекстом
        
    if( $a] == $b] ) return 0;

        return ( 
    $a] < $b] ) ? -1;
    }

    usort$arr'cmp' );
     
    Последнее редактирование: 22 авг 2013
    yavasilek нравится это.
  7. yavasilek

    yavasilek vasilek_gorbunok

    Регистр.:
    5 окт 2008
    Сообщения:
    1.174
    Симпатии:
    424
    создаю новый php файл и помещаю туда Ваш пример
    На нужном мне сервере(виртуальный хостинг, PHP Version 5.2.17-pl0-gentoo) вылетает ошибка сервера Код ошибки: 500
    На другом моем сервере все отлично отрабатывает.

    методом проб выяснил, что usort не выдает ошибку, ошибка появляется когда добавляем function как параметр usort
     
Статус темы:
Закрыта.