从多维数组中获取特定值

6 php arrays multidimensional-array

我有大的多维数组.我必须从中找到特定的子阵列.
我尝试使用一个递归函数,但它实际上没有返回值.谁能给我另一个解决方案.
这是数组的预览.

Array
(
    [0] => Array
        (
            [expanded] => 1
            [key] => _1
            [title] => New
        )

    [1] => Array
        (
            [key] => _2
            [title] => Home
        )

    [2] => Array
        (
            [expanded] => 1
            [key] => _3
            [title] => Care
            [children] => Array
                (
                    [0] => Array
                        (
                            [expanded] => 1
                            [key] => _4
                            [title] => face
                            [children] => Array
                                (
                                    [0] => Array
                                        (
                                            [key] => _5
                                            [title] => new
                                        )

                                    [1] => Array
                                        (
                                            [key] => _6
                                            [title] => <strong>face timeline</strong>
                                            [data] => Array
                                                (
                                                    [url] => http://localhost/patient/face-timeline/

                                                    [type] => content
                                                    [cid] => 2291
                                                    [timeline] => 0
                                                )

                                            [children] => Array
                                                (
                                                    [0] => Array
                                                        (
                                                            [key] => _2278
                                                            [title] => Post Op Visit
                                                        )

                                                    [1] => Array
                                                        (
                                                            [key] => _2277
                                                            [title] => Surgery
                                                        )

                                                    [2] => Array
                                                        (
                                                            [key] => _2276
                                                            [title] => Pre-Op
                                                        )

                                                    [3] => Array
                                                        (
                                                            [key] => _2275
                                                            [title] => Consultation
                                                        )

                                                    [4] => Array
                                                        (
                                                            [key] => _2274
                                                            [title] => Reseach
                                                        )

                                                )

                                        )

                                )

                        )

                )

        )

)
Run Code Online (Sandbox Code Playgroud)

从那个数组我想要这个数组(如下):

Array
(
    [key] => _6
    [title] => <strong>face timeline</strong>
    [data] => Array
        (
            [url] => http://localhost/patient/face-timeline/
            [type] => content
            [cid] => 2291
            [timeline] => 0
        )

    [children] => Array
        (
            [0] => Array
                (
                    [key] => _2278
                    [title] => Post Op Visit
                )

            [1] => Array
                (
                    [key] => _2277
                    [title] => Surgery
                )

            [2] => Array
                (
                    [key] => _2276
                    [title] => Pre-Op
                )

            [3] => Array
                (
                    [key] => _2275
                    [title] => Consultation
                )

            [4] => Array
                (
                    [key] => _2274
                    [title] => Reseach
                )

        )

)  
Run Code Online (Sandbox Code Playgroud)

这是我试过的

function recursion($array,$postid) {

    foreach ($array as $key=>$value) {

       if((isset($value['data']['cid'])) && ($value['data']['cid'] == $postid)){

            $tmp = $value;
                return $value;

        }
        if (is_array($value))
        {

            recursion($value,$postid); 
        } 
    }

}  
Run Code Online (Sandbox Code Playgroud)

此函数不返回值.
$postid2291.这是我正在搜索,我能够打印该数组,但无法返回值这是链接

ald*_*n27 1

如果您只想获取特定值,请使用以下命令:

   function recursive($your_array)
    {
        $newArray = [];

        foreach ($your_array as $key => $val) {
            if (array_keys($your_array) == 'children') {
                foreach($val as $key2 => $val3){
                    $newArray[] = recursive($val3);
                }
            }
        }
        print_r($newArray);
    }
Run Code Online (Sandbox Code Playgroud)