Avatar billede dj-hupi Nybegynder
01. november 2011 - 09:45 Der er 4 kommentarer

Kombination af multi array

Hejsa,

Er der nogen som lige har en hurtig måde hvordan man kan kombinere de 2 eller flere arrays?

Array
(
    [ Bandage farve] => Array
        (
            [0] => hvid
            [1] => sort
            [2] => marine
            [3] => mørkebrun
            [4] => grå
        )

    [ Bandage str.] => Array
        (
            [0] => pony
            [1] => full
        )

)

Jeg har brug for at hvid for en kombi af pony og full
Men de skal kun gå igen 1 gang

Nogen som kan komme med en lille funktion?
Avatar billede moddi100 Seniormester
01. november 2011 - 10:41 #1
Jeg forstår umiddelbart ikke hvordan du gerne vil have resultatet ser ud?

Men hvis du vil kombinere de to arrays, kan du gøre det med array_merge():


print_r(array_merge($array['Bandage farve'], $array['Bandage str.']));

// Output
Array
(
    [0] => hvid
    [1] => sort
    [2] => marine
    [3] => mørkebrun
    [4] => grå
    [5] => pony
    [6] => full
)
Avatar billede dj-hupi Nybegynder
01. november 2011 - 10:50 #2
Jeg kunne godt tænke mig noget i denne stil..

Array
(
    [pony] =>array(
        [0] => hvid
        [1] => sort
        [2] => marine
        [3] => mørkebrun
        [4] => grå
    [full] =>array(
        [0] => hvid
        [1] => sort
        [2] => marine
        [3] => mørkebrun
        [4] => grå
)

Det er faktisk fordi at jeg skal kombinere alle varianter på nogen produkter
Og der kan også være mere end 2 variant typer så jeg skal lave en dynamisk måde at kombinere alle uden at der kommer dubletter.
Avatar billede DeeDawg Nybegynder
01. november 2011 - 15:06 #3
Jeg antager at dine arrays ser sådan her ud til at starte med:

<?php
    $array = array("Bandage farve" => array("hvid", "sort", "marine", "mørkebrun", "grå"));
    $array2 = array("Bandage str" => array("pony", "full"));
?>

Hvilket producerer dette resultat:

Array
(
    [Bandage farve] => Array
        (
            [0] => hvid
            [1] => sort
            [2] => marine
            [3] => mørkebrun
            [4] => grå
        )

)


Array
(
    [Bandage str] => Array
        (
            [0] => pony
            [1] => full
        )

)

For at samle de her 2, på den måde som du gerne vil, skal du bruge funktionen
array_merge_recursive()


Her har du et eksempel:

<?php
    $array = array("Bandage farve" => array("hvid", "sort", "marine", "mørkebrun", "grå"));
    $array2 = array("Bandage str" => array("pony", "full"));
    $result = array_merge_recursive($array, $array2);
?>

Hvilket producerer dit ønskede resultat:

Array
(
    [Bandage farve] => Array
        (
            [0] => hvid
            [1] => sort
            [2] => marine
            [3] => mørkebrun
            [4] => grå
        )

    [Bandage str] => Array
        (
            [0] => pony
            [1] => full
        )

)


Mere info?

http://www.php.net/manual/en/function.array-merge-recursive.php
Avatar billede moddi100 Seniormester
01. november 2011 - 20:07 #4
I så fald vil jeg anbefale dig at loope igennem dine varianter og så tilføje resten som et array:


// Dit array med informationer, bemærk at det også kan være
// opdelt i 2. Princippet er det samme
$start = Array
(
    [ Bandage farve] => Array
        (
            [0] => hvid
            [1] => sort
            [2] => marine
            [3] => mørkebrun
            [4] => grå
        )

    [ Bandage str.] => Array
        (
            [0] => pony
            [1] => full
        )
)
$output = array();

// Her looper vi så igennem alle størrelserne
foreach($start['Bandage str.'] as $size)
{
    // Her kopierer vi blot hele array'et med farver
    $output[$size] = $start['Bandage farve'];
}

// Og resultatet bliver
Array
(
    [pony] =>array(
        [0] => hvid
        [1] => sort
        [2] => marine
        [3] => mørkebrun
        [4] => grå
    [full] =>array(
        [0] => hvid
        [1] => sort
        [2] => marine
        [3] => mørkebrun
        [4] => grå
)
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