構造を破壊せずにアレイをクリーンアップしたい。そこで、各要素の値を削除したいと思います。問題は、配列の次元が多いことです。
[array]
[id] = "llll"
[innerArray]
[name] = "namenamename"
[name] = "kdkdfk"
[arryme]
[id] = 121212
[arraytarra] = "dd"
する必要があります
[array]
[id] = ""
[innerArray]
[name] = ""
[name] = ""
[arryme]
[id] = 0
[arraytarra] = ""
これが私の始まりです:
private function cleanArray($array) {
$return = $array;
foreach($array as $key => $value) {
if(is_Array($array[$key])) $this->cleanArray($array[$key]);
else $return[$key] = "";
}
}
bwoebi のおかげで最終版:
/****************
* cleanArray()
****************
* cleans an array: deletes the values but let the keys
*/
private function cleanArray($array) {
foreach($array as &$value) {
if(is_Array($value)) $value = $this->cleanArray($value);
else if(is_Int($value)) $value = 0;
else if(is_Bool($value)) $value = false;
else $value = "";
}
return $array;
}