PHP递归多维数组替换键名和键值
多维数组键名替换
在很多时候获取到的数组结果不尽人意,需要自己修改后才能的到一个满足需求的数组,这是后可以通过递归的方式修改键名
代码如下
替换键名的代码,例如:
function changeKeys($array, $keyEnArray, $keyZhCnArray)
{
if(!is_array($array)) return $array;
$tempArray = array();
foreach ($array as $key => $value){
// 处理数组的键,翻译成中文
$key = array_search($key, $keyEnArray, true) === false ? $key : $keyZhCnArray[array_search($key, $keyEnArray)];
if(is_array($value)){
$value = changeKeys($value, $keyEnArray, $keyZhCnArray);
}
$tempArray[$key] = $value;
}
return $tempArray;
}
$info = array( "fruits" => array("apple", "banana", "pear"), "furniture" => array("table", "chair", "bed"));
$keyEnArray = array("fruits" , "furniture");
$keyZhCnArray = array("水果" , "家具");
$result = changeKeys($info, $keyEnArray, $keyZhCnArray);
print_r($result);
多维数组键值替换
在很多时候获取到的数组结果不尽人意,需要自己修改后才能的到一个满足需求的数组,这是后可以通过递归的方式修改键值
代码如下
替换键值的代码,例如:
// 递归改变数组的键值
function changeValues($array, $valueEnArray, $valueZhCnArray)
{
if(!is_array($array)) return $array;
$tempArray = array();
foreach ($array as $key=>$value){
if(is_array($value)){
$value = changeValues($value, $valueEnArray, $valueZhCnArray);
}else{
// 处理数组的值,翻译成中文
$value = array_search($value, $valueEnArray, true) === false ? $value : $valueZhCnArray[array_search($value, $valueEnArray)];
}
$tempArray[$key]=$value;
}
return $tempArray;
}
$info = array( "fruits" => array("apple", "banana", "pear"), "furniture" => array("table", "chair", "bed"));
$valueEnArray = array("apple" , "banana", "pear", "table", "chair", "bed");
$valueZhCnArray = array("苹果" , "香蕉" ,"梨", "桌子", "椅子", "床");
$result = changeValues($info, $valueEnArray, $valueZhCnArray);
print_r($result);
目录
用 [TOC]
来生成目录:
- PHP递归多维数组替换键名和键值
- 多维数组键名替换
- 代码如下
- 多维数组键值替换
- 代码如下
- 目录
- 多维数组键名替换
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。