Autor Zpráva
Návštěvník
Profil *
Potřeboval bych poradit jak převést dvourozměrné pole na jednorozměrné, ale tak, aby se nevytvořilo nové pole, jen by se měla změnit struktura toho současného. Jde to?

Moje pole má podobnou strukturu

Array
(
    [main] => Array
        (
            [rate] => 0
            [hide] => 0
        )

    [ext] => Array
        (
            [templates] => sun
        )

)

Chci top ole v této struktuře:

Array
        (
            [rate] => 0
            [hide] => 0
            [templates] => sun
        )

Nenapadá mě jak to udělat aniž by se vytvořilo nové pole.
Joker
Profil
Návštěvník:
Odsud:
function flatten(array $array) {
    $return = array();
    array_walk_recursive($array, function($a) use (&$return) { $return[] = $a; });
    return $return;
}
(funkční od PHP 5.3)

Nezachová názvy indexů, ale index je případný druhý argument callback funkce, takže by stačilo ho doplnit a pak ho použít v $return[]
Návštěvník
Profil *
Joker:
Bohužel mám PHP 5.2.1 . Zkusím jinak.

    foreach($arr as $k1 => $subArr)
      if (is_array($subArr)):
        foreach($subArr as $k2 => $v)
          $arr[$k2]=$v;
        unset($arr[$k1]);
      endif;

Mnohem lepší než zkoušet složité funkce. Nesmíš ale použit duplicitní názvy pro klíče, aby se nepřepsaly.
Joker
Profil
Ve stejné diskusi na kterou jsem už odkázal je i řešení pro dvourozměrné pole:
$result = call_user_func_array('array_merge', $array);

Návštěvník:
Mnohem lepší než zkoušet složité funkce.
Vyzkoušet něco nového je jediný způsob, jak se něco nového naučit :-)
Návštěvník
Profil *
Joker:
Jestli myslíš to php, tak mě jde spíše o to aby web, který dělám mohl jet i na případně malinko starší verzi - pro případ, že hosting, který si zvolím nebude mít php 5.3
Joker
Profil
Návštěvník:
Kód v [#4] by měl fungovat od PHP 4.0.4 (pro dvourozměrné pole).

spíše o to aby web, který dělám mohl jet i na případně malinko starší verzi - pro případ, že hosting, který si zvolím nebude mít php 5.3
V tom případě bych možná zvolil jiný hosting.
K PHP 5.3 jsou už vydávané jen bezpečnostní aktualizace (ne opravy chyb) a podpora bude ukončena letos v červenci.
Podpora PHP 5.2 byla ukončena v roce 2011.
Návštěvník
Profil *
Joker:
Já sem zapomněl kliknout na ten odkaz a pak jsem si ještě nevšiml tvého kódu v #4 tak se teď jen divím, že tu bylo řešení. Asi čtu ob řádek.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0