Avatar billede leshrac Nybegynder
17. februar 2009 - 09:47 Der er 3 kommentarer

Multidementionelt array skal "GROUPES BY"

Hej Eksperter,

Jeg har et multidementionelt array, det kunne se sådan her ud:

Array
(
    [0] => Array
        (
            [name] => Hest
            [type] => Pony
        )

    [1] => Array
        (
            [name] => Hest
            [type] => Stor?
        )

    [2] => Array
        (
            [name] => Ged
            [type] => Sort?
        )

    [3] => Array
        (
            [name] => Elefant
            [type] => Større
        )
)

Hvis jeg nu, med PHP, vil sortere det array, så det bliver grouped by [name] hest :) Så der i arrayed kun er Hest Ged og Elefant? :)

Mvh
John
Avatar billede erikjacobsen Ekspert
17. februar 2009 - 10:16 #1
Sådan her: http://n0p.com/864241.php

<?php

$a=Array
(
    0 => Array
        (
            'name' => 'Hest',
            'type' => 'Pony'
        ),

    1 => Array
        (
            'name' => 'Hest',
            'type' => 'Stor?'
        ),

    2 => Array
        (
            'name' => 'Ged',
            'type' => 'Sort?'
        ),

    3 => Array
        (
            'name' => 'Elefant',
            'type' => 'Større'
        )
);

$list=array();
array_walk($a,create_function('$e,$i','global $list; $list[$e[\'name\']]=1;'));

$list2=array_keys($list);
print_r($list2);

?>
Avatar billede leshrac Nybegynder
17. februar 2009 - 11:10 #2
Tak for kommentaren.. Jeg giver mig til at rode lidt med det :D

Men kan du uddybe hvad der sker inde i array walk lidt... :)? Det kunne være rart :)

Mvh
John
Avatar billede erikjacobsen Ekspert
17. februar 2009 - 11:19 #3
Man anvender funktionen på hver værdi, og sætter en værdi i et hash-array - det fjerner dubletter nemt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester