[php] oneindige array's doorlopen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
Hoi,

Is er een mogelijkheid waarbij ik door een array kan lopen en addslashes bij alle values kan doen?
Het moet nu uit maken of een array nog 4 arrays in de array zelf heeft of meer..

Met array_values of foreach lukt het niet :(

Weet iemand een manier ?

www.dannyhiemstra.nl


Acties:
  • 0 Henk 'm!

  • MissingDog
  • Registratie: Augustus 2002
  • Niet online
foreach combineren met een if(is_array($variabele)), zodat je kan checken of een arrayvalue een array bevat? Dan moet je vervolgens je structure die overblijft opnieuw de functie instoppen...

klein voorbeeld zoals ik 't gebruik voor het bouwen van een sitetree:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
    function sitetree($page_id) {
        return $this->_recursiveTree(array('id'=>$page_id));
    }
    
    function _recursiveTree ($array) {
        if (is_array($kids = $this->get_page_children($array['id']))){
            foreach($kids as $kid) {
                $kid['kids'] = $this->_recursiveTree($kid);
                $structure[] = $kid;
            }
        }
        return $structure;
    }


en dan zou jij dus de addslashes functie moeten toevoegen en de output naar een 2e array gooien of de waarden in je input array wijzigen

[ Voor 111% gewijzigd door MissingDog op 20-01-2005 13:28 ]


Acties:
  • 0 Henk 'm!

  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08 14:36
Array_walk met een callback functie die zelf array elementen doorloopt.

PHP:
1
2
3
4
5
6
7
8
9
function addslashes_callback(&$item) {
    if (is_array($item)) {    
        array_walk($item, 'addslashes_callback');
    } else {
        $item = addslashes($item);
    }
}

array_walk($test, 'addslashes_callback');

| Toen / Nu


Acties:
  • 0 Henk 'm!

  • MissingDog
  • Registratie: Augustus 2002
  • Niet online
SuperRembo schreef op donderdag 20 januari 2005 @ 13:42:
Array_walk met een callback functie die zelf array elementen doorloopt.
sweet, deze gaat copy-paste in mijn functions-bieb :)