Autor | Zpráva | ||
---|---|---|---|
Johny98 Profil * |
#1 · Zasláno: 9. 8. 2013, 16:32:24
Ahoj, potřeboval bych funkci, která vytvoří z vícerozměrného pole jednorozměrné, asi nějak takto:
$pole = array("A", "B", "C", array("D", "E", "F", array("G", "H", "I"), "J"), "K", "L"); array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"); díky za radu |
||
Joker Profil |
#2 · Zasláno: 9. 8. 2013, 16:42:44
Johny98:
Šlo by to asi tímto algoritmem: Vytvořit nové pole pro výstup. Pro každou položku vstupního pole: - pokud je to pole (is_array): - - Aplikovat na položku rekurzivně tento algoritmus a jeho výsledek sloučit s výstupem. - Jinak položku připojit k výstupu. Vrátit výstup. |
||
Johny98 Profil * |
#3 · Zasláno: 9. 8. 2013, 17:04:18
No mám tohle, ale to nefunguje:
function Pole($data) { $result = array(); for($i = 0; $i < count($data); $i++) if(is_array($data[$i])) $result[] = Pole($data[$i]); else $result[] = $data[$i]; return $result; } var_dump(Pole(array("A", "B", array("C", "D")))); |
||
juriad Profil |
#4 · Zasláno: 9. 8. 2013, 17:17:48
<?php function _flatten($in, &$out) { foreach ($in as $key => $val) { if(is_array($val)) { _flatten($val, $out); } else { $out[] = $val; } } } function flatten($in) { $out = array(); _flatten($in, $out); return $out; } var_dump(flatten(array("A", "B", array("C", "D")))); |
||
Alphard Profil |
#5 · Zasláno: 9. 8. 2013, 17:24:45
|
||
Johny98 Profil * |
#6 · Zasláno: 9. 8. 2013, 17:41:49
Díky, už to funguje
|
||
Mike8748 Profil |
#7 · Zasláno: 9. 8. 2013, 18:25:29
když už se tu předvádí kdo napíše hezčí kousek kódu tak si dovolím přidat
$pole = array("A", "B", "C", array("D", "E", "F", array("G", "H", "I"), "J"), "K", "L"); function funkce($a,$b) { if (is_array($b)) { $b=array_reduce($b,'funkce'); } return $a.$b; } $vysledek=array_reduce($pole,'funkce'); |
||
Časová prodleva: 11 let
|
0