Ik heb een multidimensionale array:
Nu probeer ik al een hele tijd een functie te maken, die deze array recursief doorloopt en waarden verwijderd. De te verwijderen waarden moeten aangeleverd kunnen worden in een array. Dus zoiets als:
Onderstaande functie heb ik:
Een mooie functie (al zeg ik het zelf), met maar een nadeel: hij werkt niet
. De array die hij uitspuugt is namelijk wel kleiner dan het origineel, maar wat er precies is gebeurd, is onvoorspelbaar.
Wie wordt mijn vriend vandaag?
PHP:
1
2
3
4
5
6
7
| $aMenu = array("Node1"=>array ("c", "d", "e"), "Node2"=>array ("f", "Node3"=>array("h", "i", "j"))); |
Nu probeer ik al een hele tijd een functie te maken, die deze array recursief doorloopt en waarden verwijderd. De te verwijderen waarden moeten aangeleverd kunnen worden in een array. Dus zoiets als:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
| $aItemsToDelete=array('d', 'f' 'j'); print_r(array_splice_recursive($aItemsToDelete, $aArray)) /* geeft: $aMenu = array("Node1"=>array ("c", "e"), "Node2"=>array ("Node3"=>array("h", "i"))); */ |
Onderstaande functie heb ik:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| function array_splice_recursive($aItemsToDelete, $aArray) { foreach($aArray as $key=>$value) { if (is_array($value)) { $aArray[$key] = array_splice_recursive($aItemsToDelete, $value); } else { if (array_search($value, $aItemsToDelete)!='') { array_splice($aArray, $key, 1); } } } return $aArray; } |
Een mooie functie (al zeg ik het zelf), met maar een nadeel: hij werkt niet
Wie wordt mijn vriend vandaag?
[ Voor 4% gewijzigd door Rekcor op 16-03-2007 10:20 . Reden: De uitgespuugde array was niet leeg, maar gaf rare waarden. ]