1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
/**
* Applatit un tableau à n dimension, en préservant les clefs si spécifié dans le second paramètre
* @param array $array
* @param (optionnal) boolean $pk ($preserve_keys)
* @return array $result
*/
function array_flatten( array $array, $pk = false) {
if(!is_bool($pk)) {
throw new Exception("second parameter must be a boolean");
}
static $result = array();
foreach( $array as $key => $value) {
if( is_array($value)) {
if($pk) $result[$key] = array();
array_flatten($value, $pk);
} else {
if(array_key_exists($key, $result)) {
array_push($result[$key], $value);
} else {
$result[$key] = array($value);
}
}
}
return($result);
} |
Partager