php用递归将多维数组所有的键名都改为大写或者小写

$arr = array(
  ‘A‘ => ‘A‘,
  ‘b‘ => ‘B‘,
  ‘C‘ => array(
     ‘e‘ => ‘f‘,
	 ‘G‘ => array(
	    ‘H‘ => ‘i‘,
		‘j‘ => ‘o‘,
	 ),
   ‘abc‘=>array(
      ‘r‘ => ‘222‘,
   ),
  ),
);

function array_case(&$array, $case=CASE_LOWER) {
  $array = array_change_key_case($array, $case);
    foreach ($array as $key => $value) {
        if ( is_array($value) ) {
            array_case($array[$key], $case);
        }
    }
}
array_case($arr,CASE_LOWER);
print_r($arr);

这个功能想了好久都没想出来

最后还是靠了伟大的百度,百度真强大啊。

主要用到了里面的传址赋值的方法,就是这个地方是难点。

时间: 2024-11-19 22:55:35

php用递归将多维数组所有的键名都改为大写或者小写的相关文章

Python学习笔记 之 递归、二维数组顺时针旋转90°、正则表达式

递归.二维数组顺时针旋转90°.正则表达式 1.   递归算法是一种直接或间接调用自身算法的过程. 特点: 递归就是在过程或函数里调用自身 明确的递归结束条件,即递归出口 简洁,但是不提倡 递归次数多容易造成栈溢出 要求: 每次调用递归规模上有所减小 前一次为后一次做准备 规模较小时必须直接给出解答而不再进行递归调用 例子:递归实现二分法 1 def searchMyData(mydate,a1): 2 mid = int(len(mydate)/2) 3 if mid >= 1: 4 if m

利用递归把多维数组转为一维数组的函数

函数名称:array_multi2single 函数原形:array array_multi2single(array) 实现功能:把一个多维数组的数值存放到一维数组中,不保存Key. < ?php function array_multi2single($array) {     static $result_array=array();     foreach($array as $value)     {         if(is_array($value))         {    

二维数组去除特定键的重复项

<?php // 本类由系统自动生成,仅供测试用途 class IndexAction extends Action { //原始数据 /*Array ( [0] => Array ( [ap] => 23 [ac] => 569418 ) [1] => Array ( [ap] => 23 [ac] => 569520 ) [2] => Array ( [ap] => 23 [ac] => 569533 ) )*/ //除去重复值后的数据 /*

实现对多维数组按照某个键值排序的两种方法(array_multisort和array_sort)

实现对多维数组按照某个键值排序的两种解决方法(array_multisort和array_sort): 第一种:array_multisort()函数对多个数组或多维数组进行排序. //对数组$hotcat按照count键值大小降序进行排序: $hotcat =array( array('1501'=>array('catid'=>'1546','catname'=>'续梦PHP 一级','count'=>'588')), array('1501'=>array('catid

第五天:C基础之递归与二维数组

写递归函数时要明确结束条件和递归体. 练习了几个递归函数: 首先是斐波那契数,前几天写过的程序,今天写的时候还是出现了问题.在判断结束条件的时候写错.写成(i==1&&i==2) 这个是有明显的逻辑错误. 1 斐波那契#include<stdio.h> 2 int fbnq(int i) 3 { 4 if(i==1) 5 return 1; 6 if(i==2) 7 return 1; 8 int ret = fbnq(i-1)+fbnq(i-2); 9 10 return r

无限极分类不用递归生成多维数组(树)的方法

最近在项目中碰到的一个实际问题:后台商品分类用的是无限极方法(如图1所示), (图1) 现在前台要根据分类遍历出三级导航(效果如图2所示), (图2) 需要把查询出来的数据处理成多维数组,方便前台用多个foreach嵌套遍历. 网上多方搜集资料.经过验证成功后,记录解决方案如下: 1.从数据库查询出所有数据(项目用的ThinkPHP框架): 2.对数据进行初步处理,使二维数组的"键"与三维数组的id相等,将数据存入新数组$tmp: 1 $info = D('classify')->

通过递归组合多维数组!

/** * 组合多维数组 * @param $data 待处理的数组 * @param $name 子级数组key * @param $pid 父ID */ function unlimitedForLayer($data, $name='chile', $pid= 0){ $arr = array(); foreach ($data as $v){ if($v['pid'] == $pid){ $arr[$name] = unlimitedForLayer($data, $name, $v['

PHP 两个多维数组根据某个键的值进行组合排序的几种思路

需求: 有两个多维数组 $arr = [ ['name'=>'dee','age'=>28], ['name'=>'emperor', 'age'=>30], ['name'=>'Lee', 'age'=>32], ['name'=>'Arshavin', 'age'=>33] ]; $arr2 = [ ['name'=>'Ozil', 'age'=>27], ['name'=>'CR7', 'age'=>29], ['name'=&

PHP编程实现多维数组按照某个键值排序的方法

1.array_multisort()函数对多个数组或多维数组进行排序. //对数组$hotcat按照count键值大小降序进行排序: $hotcat =array(  array('1501'=>array('catid'=>'1546','catname'=>'数组排序 一级','count'=>'588')),  array('1501'=>array('catid'=>'1546','catname'=>'数组排序二级','count'=>'588'