Autor | Zpráva | ||
---|---|---|---|
Návštěvník Profil * |
#1 · Zasláno: 9. 2. 2014, 19:57:00
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 |
#2 · Zasláno: 9. 2. 2014, 20:38:31
Návštěvník:
Odsud: function flatten(array $array) { $return = array(); array_walk_recursive($array, function($a) use (&$return) { $return[] = $a; }); return $return; } 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 * |
#3 · Zasláno: 9. 2. 2014, 21:13:44
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 |
#4 · Zasláno: 9. 2. 2014, 21:56:03
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 * |
#5 · Zasláno: 9. 2. 2014, 23:23:56
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 |
#6 · Zasláno: 10. 2. 2014, 07:30:11
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 * |
#7 · Zasláno: 10. 2. 2014, 16:39:44
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. |
||
Časová prodleva: 11 let
|
0