| 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: 13 let
|
|||
0