如何更改未知数组深度,以及如何在php数组?·;

如何更改未知数组深度,以及如何在php数组?·;,php,arrays,Php,Arrays,我想把所有的小写字母改为大写字母(abcdefgh)。 我试过这个: $ar = array(10, 102, 199, "a"=>array('B','c','d'=>array('e','f')),'g','h'); 我试着用这个来获取数组深度: function toto($arr,$depth='1'){ $tem=array(); foreach ($arr as $key => $value) { if(is_string($va

我想把所有的小写字母改为大写字母(abcdefgh)。 我试过这个:

$ar = array(10, 102, 199, "a"=>array('B','c','d'=>array('e','f')),'g','h'); 
我试着用这个来获取数组深度:

function toto($arr,$depth='1'){
    $tem=array();
    foreach ($arr as $key => $value) {
        if(is_string($value)){
            $tem[]=strtoupper($value);
        }elseif(is_array($value)&&array_depth($value)>1){
            // $J=str_repeat('[]', (array_depth($value)));
            $tem[]=array_map('strtoupper',$value);
        }else{
            $tem[]=$value;
        }
    }
    return $tem;
}

如何实现这两件事?

或许快速浏览一下PHP文档,您就可以使用以下功能:

function array_depth($array) {
    $max_depth = 1;

    foreach ($array as $value) {
        if (is_array($value)) {
            $depth = array_depth($value) + 1;

            if ($depth > $max_depth) {
                $max_depth = $depth;
            }
        }
    }        
    return $max_depth;
 }

用于将多维数据的每个级别上的每个字符串设置为大写。。。。然后你甚至不需要知道数组的深度

你可以使用这个线性函数:

array_walk_recursive(
    $ar,
    function (&$value, $key) {
        $value = strtoupper($value);
    }
);
首先将其编码为json,然后再次调用并解码为数组

这样,您将获得大写的键和值。

使用:-


你可以使用
递归
。在myexception中看到你的博客,然后来投票。为了再次获得数组,不是JSON字符串,但现在因为:我想把它们都从下到上a B C D E F G H,D是一个键,我不太确定OP是否也想要大写的键,没有迹象表明现有代码正在努力改变键的大小写;事实上,在现有代码中根本没有使用任何现有的键定义重建任何东西。这就是我为什么要写的原因:我不太确定,但D是OP数组中的键(只是小写)。。。让我们看看OP是什么意思谢谢,但是数组的深度不知道,楼上的答案是这样的。谢谢,我所有的未知friends@BoTong只是分享想法。
$ar = json_decode(strtoupper(json_encode($ar)),true);
function to_upper($n)
{
    return(strtoupper($n));
}

$input = array('a','b','c');
$output = array_map("to_upper", $input);
print_r($output);