libertaire
libertaire

Reputation: 855

arrays inside array - sort alphabetically

I have an array that contains many other arrays. The first item is a base64-encoded string and the second item is the real string.

How can i sort the array alphabetically based on the second string ?

    Array
(
    [3] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAja29jaGlzZSAtIDE0IC0gbGEgcmV2YW5jaGUgZGVzIHZhaW5jdXMgIFt3d3cucGlyYXRlLXB1bmsubmV0XS5tcDMK
            [1] => kochise - 14 - la revanche des vaincus  [www.pirate-punk.net].mp3

        )

    [9] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAja29jaGlzZSAtIDE1IC0gbGUgY29tcHRlIGQnIGF1am91ZCdodWkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS5tcDMK
            [1] => kochise - 15 - le compte d' aujoud'hui  [www.pirate-punk.net].mp3

        )

    [18] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAja29jaGlzZSAtIDE2IC0gc2OKbmUgZGUgcmFjaXNtZSBvcmRpbmFpcmUgIFt3d3cucGlyYXRlLXB1bmsubmV0XS5tcDMK
            [1] => kochise - 16 - sc�ne de racisme ordinaire  [www.pirate-punk.net].mp3

        )

    [16] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAja29jaGlzZSAtIDE3IC0gY2hhbnNvbiBwb3VyIHBhbnR4b2EgIFt3d3cucGlyYXRlLXB1bmsubmV0XS5tcDMK
            [1] => kochise - 17 - chanson pour pantxoa  [www.pirate-punk.net].mp3

        )

    [13] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAja29jaGlzZSAtIDE4IC0gZi5sLmEgIFt3d3cucGlyYXRlLXB1bmsubmV0XS5tcDMK
            [1] => kochise - 18 - f.l.a  [www.pirate-punk.net].mp3

        )

    [15] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAja29jaGlzZSAtIDE5IC0gdGVycmUgYnJ1bIJlcyAgW3d3dy5waXJhdGUtcHVuay5uZXRdLm1wMwo=
            [1] => kochise - 19 - terre brul�es  [www.pirate-punk.net].mp3

        )

    [8] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAja29jaGlzZSAtIDExIC0gdGVycmUgdmlvbIJlICBbd3d3LnBpcmF0ZS1wdW5rLm5ldF0ubXAzCg==
            [1] => kochise - 11 - terre viol�e  [www.pirate-punk.net].mp3

        )

    [19] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAja29jaGlzZSAtIDEyIC0gbGVzIHRlbXBzIG1vZGVybmVzICBbd3d3LnBpcmF0ZS1wdW5rLm5ldF0ubXAzCg==
            [1] => kochise - 12 - les temps modernes  [www.pirate-punk.net].mp3

        )

    [4] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAja29jaGlzZSAtIDEzIC0gMSAtIGZlbW1lIHN1ciAyIC0gZXN0IDEgaG9tbWUgIFt3d3cucGlyYXRlLXB1bmsubmV0XS5tcDMK
            [1] => kochise - 13 - 1 - femme sur 2 - est 1 homme  [www.pirate-punk.net].mp3

        )

    [7] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAja29jaGlzZSAtIDIwIC0gZGFtZSBkeW5hbWl0ZSAgW3d3dy5waXJhdGUtcHVuay5uZXRdLm1wMwo=
            [1] => kochise - 20 - dame dynamite  [www.pirate-punk.net].mp3

        )

    [2] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAjaGFpbmUgYnJpZ2FkZSAtIDA0IC0gcm9jayB0ZXJyb3Jpc3RlICBbd3d3LnBpcmF0ZS1wdW5rLm5ldF0ubXAzCg==
            [1] => haine brigade - 04 - rock terroriste  [www.pirate-punk.net].mp3

        )

    [12] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAjaGFpbmUgYnJpZ2FkZSAtIDA1IC0gY2lhIGdvbmUgIFt3d3cucGlyYXRlLXB1bmsubmV0XS5tcDMK
            [1] => haine brigade - 05 - cia gone  [www.pirate-punk.net].mp3

        )

    [14] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAjaGFpbmUgYnJpZ2FkZSAtIDA2IC0gZGVtYWluIHNlcmEgIFt3d3cucGlyYXRlLXB1bmsubmV0XS5tcDMK
            [1] => haine brigade - 06 - demain sera  [www.pirate-punk.net].mp3

        )

    [5] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAjaGFpbmUgYnJpZ2FkZSAtIDA3IC0gcGFzc2FnZXIgY2xhbmRlc3RpbiAgW3d3dy5waXJhdGUtcHVuay5uZXRdLm1wMwo=
            [1] => haine brigade - 07 - passager clandestin  [www.pirate-punk.net].mp3

        )

    [17] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAjaGFpbmUgYnJpZ2FkZSAtIDA4IC0gaSBnb25uYSBkbyBteSBoZWFkICBbd3d3LnBpcmF0ZS1wdW5rLm5ldF0ubXAzCg==
            [1] => haine brigade - 08 - i gonna do my head  [www.pirate-punk.net].mp3

        )

    [0] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAjaGFpbmUgYnJpZ2FkZSAtIDA5IC0gbnJ2ICBbd3d3LnBpcmF0ZS1wdW5rLm5ldF0ubXAzCg==
            [1] => haine brigade - 09 - nrv  [www.pirate-punk.net].mp3

        )

    [10] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAjaGFpbmUgYnJpZ2FkZSAtIDAxIC0gY29tbWlzc2FyaWF0IGJsdWVzICBbd3d3LnBpcmF0ZS1wdW5rLm5ldF0ubXAzCg==
            [1] => haine brigade - 01 - commissariat blues  [www.pirate-punk.net].mp3

        )

    [11] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAjaGFpbmUgYnJpZ2FkZSAtIDAyIC0gbWF0aGlsZGEgIFt3d3cucGlyYXRlLXB1bmsubmV0XS5tcDMK
            [1] => haine brigade - 02 - mathilda  [www.pirate-punk.net].mp3

        )

    [6] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAjaGFpbmUgYnJpZ2FkZSAtIDAzIC0gcGxlaW5lIGx1bmUgIFt3d3cucGlyYXRlLXB1bmsubmV0XS5tcDMK
            [1] => haine brigade - 03 - pleine lune  [www.pirate-punk.net].mp3

        )

    [1] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAjaGFpbmUgYnJpZ2FkZSAtIDEwIC0gZmFjZSCFIGZhY2UgIFt3d3cucGlyYXRlLXB1bmsubmV0XS5tcDMK
            [1] => haine brigade - 10 - face � face  [www.pirate-punk.net].mp3

        )

)

with this example i need to sort the sub-arrays alphabetically based on the string starting by "kochise" or "haine brigade"

Upvotes: 0

Views: 1188

Answers (4)

Björn3
Björn3

Reputation: 297

Easy way to solve this problem is to create the array like this instead: Doing it this way makes you able to use php sort functions.

  Array
(
    ["kochise - 14 - la revanche des vaincus  [www.pirate-punk.net].mp3"] => Array
        (
            [0] => ZGwvcHAvNjI1MC9rb2NoaXNlICsgaGFpbmUgYnJpZ2FkZSAtIHNhdXZhZ2VzIChzcGxpdCkgIFt3d3cucGlyYXRlLXB1bmsubmV0XS56aXAja29jaGlzZSAtIDE0IC0gbGEgcmV2YW5jaGUgZGVzIHZhaW5jdXMgIFt3d3cucGlyYXRlLXB1bmsubmV0XS5tcDMK
            [1] => kochise - 14 - la revanche des vaincus  [www.pirate-punk.net].mp3

Upvotes: -3

Nanhe Kumar
Nanhe Kumar

Reputation: 16297

function cmp($a, $b) {

    return strcmp($a[1], $b[1]);
}

usort($myArray, 'cmp');

Upvotes: 1

Young Student
Young Student

Reputation: 131

    function aasort(&$yourarrayname, $key) { //this function will do this for you, just input the 

//array name and the  key name for this target array for the association
        $sorter=array(); //here we initialize the arrays to order or sort as you like
        $ret=array();
        reset($yourarrayname); //good code practices
        foreach ($array as $ii => $va) {      //loop through the array and sort each to each in this //new arrays
            $sorter[$ii]=$va[$key]; //storing 
        }
        asort($sorter, SORT_NATURAL | SORT_FLAG_CASE); //assort as alphabetic
        foreach ($sorter as $ii => $va) {
            $ret[$ii]=$array[$ii];
        }
        $array=$ret;
    }
      //call it like this
    aasort($your_array,"key");

Upvotes: 0

Przemysław Kalita
Przemysław Kalita

Reputation: 2017

Here:

function cmp($a, $b)
{
   return strcmp($a[1], $b[1]);
}

usort($your_data, "cmp");

Upvotes: 3

Related Questions