PHP: getArrayInArray() function
Una funzione PHP che restituisce un array contenuto in un altro array multidimensionale con N dimensioni possibili
// Linguaggio PHP // Trick and TipsDavide Bausach / 18-09-2015
In un lavoro che sto effettuando in questi giorni mi è capitata l'esigenza di ottenere un array contenuto in un altro array multidimensionale, qualora sia presente, considerando che i livelli e sottolivelli dell'array potessero essere N.
Da qui ho sviluppato una piccola funzione ricorsiva (ricordiamo che le funzioni ricorsive sono quelle che al loro interno richiamano se stesse per ripeterene le istruzioni) che ritorna l'array che si vuole cercare attraverso la chiave o il valore false qualora la chiave non sia presente in una delle dimensioni dell'array multidimensionale.
I parametri da passare alla funzione sono due: il primo è la chiave dell'array che si vuole ottenere, il secondo è l'array contenitore nel quale cercare.
All'interno la funzione non fa altro che ciclare, o iterare se si preferisce come termine, gli elementi dell'array passato come parametro, fermandosi quando incontra un array con la chiave passata.
Mi perdonerete per l'uso frequente della parola array, ma visto il caso probabilmente quando si parla di array in array in array... era necessaria.
Di seguito la funzione:
Da qui ho sviluppato una piccola funzione ricorsiva (ricordiamo che le funzioni ricorsive sono quelle che al loro interno richiamano se stesse per ripeterene le istruzioni) che ritorna l'array che si vuole cercare attraverso la chiave o il valore false qualora la chiave non sia presente in una delle dimensioni dell'array multidimensionale.
I parametri da passare alla funzione sono due: il primo è la chiave dell'array che si vuole ottenere, il secondo è l'array contenitore nel quale cercare.
All'interno la funzione non fa altro che ciclare, o iterare se si preferisce come termine, gli elementi dell'array passato come parametro, fermandosi quando incontra un array con la chiave passata.
Mi perdonerete per l'uso frequente della parola array, ma visto il caso probabilmente quando si parla di array in array in array... era necessaria.
Di seguito la funzione:
function &getArrayInArray($keySearch,$array){ if(array_key_exists($keySearch,$array)) { $res =& $array[$keySearch]; return $res; } foreach($array as $key => $value){ if(is_array($value)) { $res =& getArrayInArray($keySearch,$array[$key]); if($res){ return $res; } } } return false; }