循环遍历php多维数组的每个键和值

2024-02-27

我有以下数组:

<pre>Array
(
    [student] => Array
        (
            [admission_no] => Array
                (
                    [isEmpty] => Please enter Admission No
                )

            [admission_date] => Array
                (
                    [isEmpty] => Please enter Admission Date
                )

        )

    [student_personal_details] => Array
        (
            [first_name] => Array
                (
                    [isEmpty] => Please enter First Name
                )

            [gender] => Array
                (
                    [isEmpty] => Please select Gender
                )

            [birth_date] => Array
                (
                    [isEmpty] => Please enter Birth Date
                )

        )

    [student_gardian_details] => Array
        (
            [first_name] => Array
                (
                    [isEmpty] => Please enter Gardian First Name
                )

        )

    [student_education_details] => Array
        (
            [roll_no] => Array
                (
                    [isEmpty] => Please enter Pin Code
                )

        )

)

我想使用 while 循环获取该数组中的所有字符串。我的意思是整个数组的键本身不是数组。

我尝试了以下代码:

private function getInternalErorrString($array) {
        while (list($var, $val) = each($array)) {
            if(is_array($var)) {
                $this->getInternalErorrString($var);
            } else {
                return $val;
            }
        }
    }

我能有更好的主意吗?


或者,您可以使用 SPLRecursiveArrayIterator获取值。考虑这个例子:

$values = array( 'student' => array( 'admission_no' => array('isEmpty' => 'Please enter Admission No'), 'admission_date' => array('isEmpty' => 'Please enter Admission Date'), ), 'student_personal_details' => array( 'first_name' => array('isEmpty' => 'Please enter First Name'), 'gender' => array('isEmpty' => 'Please enter Gender'), 'birth_date' => array('isEmpty' => 'Please enter Birth Date'), ), 'student_gardian_details' => array( 'first_name' => array('isEmpty' => 'Please enter Gardian First Name'), ), 'student_education_details' => array( 'roll_no' => array('isEmpty' => 'Please enter Pin Code'), ),);

$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($values));
foreach($iterator as $key => $value) {
    $data[] = $value;
}

示例输出:

Array
(
    [0] => Please enter Admission No
    [1] => Please enter Admission Date
    [2] => Please enter First Name
    [3] => Please enter Gender
    [4] => Please enter Birth Date
    [5] => Please enter Gardian First Name
    [6] => Please enter Pin Code
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

循环遍历php多维数组的每个键和值 的相关文章