如何创建一个返回MultiDimensional数组中所有值的函数

时间:2018-05-19 19:59:17

标签: php arrays multidimensional-array server-side

我想在php中创建一个函数来处理给定的数组(任何维度)并返回该数组的所有值。到目前为止,这是我的代码:


    <?php  function resolve_array($args){     //To resolve 2 dimensional array

    foreach($args as $i => $i_val ){

        if(is_array($i_val)){
            foreach($i_val as $z=>$z_val ){
            echo  $z_val;
            }
         }else
        {
            echo  $i_val;
        }
         }}  ?>

这个函数解析了二维数组,我想循环它来解析整个数组 我使用这个函数来获取数组的维度。


     <?php function countdim($array){ //To get the dimension of array
        if (is_array(reset($array)))
        {
            $return = countdim(reset($array)) + 1;
        }

        else
        {
            $return = 1;
        }

        return $return; }   ?>

我发现自己迷失在试图展示所有价值,任何想法如何继续前进?谢谢!

1 个答案:

答案 0 :(得分:1)

我不确定你为什么要那样做。

无论如何,此代码段将多维数组中的所有值收集到一个单独的数组中。

<?php        

$values = array();

$collection = array(
        array(
            61854,
            "sdkfjh",
            "ldsjf" => array(
                "25",
                "jsdbf" => array(
                    9874158,
                    array(),
                    array(
                            6
                        )
                )
            ),
        ),
        23,
        array(
            "abcyx",
            "hey",
            12546,
            "iii" => array(
                "odsfgv",
                521845
            )
        ),
        61874
    );

function resolve($collection,&$values){
    foreach($collection as $each_key => $each_value){
        if(is_array($each_value)){
            resolve($each_value,$values);
        }else{
            $values[] = $each_value;
        }
    }
}

resolve($collection,$values);

echo "<pre>";
print_r($values);

<强>输出

Array
(
    [0] => 61854
    [1] => sdkfjh
    [2] => 25
    [3] => 9874158
    [4] => 6
    [5] => 23
    [6] => abcyx
    [7] => hey
    [8] => 12546
    [9] => odsfgv
    [10] => 521845
    [11] => 61874
)