我有以下PHP数组:
$data = array(
'data' => array(
'first_key' => 'first_value',
'second_key' => 'second_value',
'third_key' => 'third_value',
'fourth_key' => array(
'mini_first' => 'mini_value'
)));
我需要对键和值应用过滤器。为简单起见,我需要转换为大写并添加另一个字符:
$data = array(
'DATA' => array(
'FIRST_KEYx' => 'FIRST_VALUEx',
'SECOND_KEYx' => 'SECOND_VALUEx',
'THIRD_KEYx' => 'THIRD_VALUEx',
'FOURTH_KEYx' => array(
'MINI_FIRSTx' => 'MINI_VALUEx'
)));
假设您不知道该数组将包含多少个数组级别。我该如何解决这个问题?
答案 0 :(得分:1)
$newArray = array();
foreach ($data as $key => $value) {
$newArray[strtoupper($key) . "x"] = strtoupper($value) ."x";
}
$data = $newArray;
答案 1 :(得分:1)
我认为这是对的:
<?php
$data = array(
'data' => array(
'first_key' => 'first_value',
'second_key' => 'second_value',
'third_key' => 'third_value',
'fourth_key' => array(
'mini_first' => 'mini_value'
)));
function convert($array){
$new = array();
foreach($array as $key => $value){
if(is_array($value)){
$new[strtoupper($key)."x"] = convert($value);
}else{
$new[strtoupper($key)."x"] = strtoupper($value)."x";
}
}
return $new;
}
print_r(convert($data));
答案 2 :(得分:0)
您是否尝试过使用此
$input_array = array("FirSt" => 1, "SecOnd" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER));