Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环遍历php多维数组的每个键和值_Php_Arrays_Multidimensional Array - Fatal编程技术网

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

循环遍历php多维数组的每个键和值,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有以下数组: <pre>Array ( [student] => Array ( [admission_no] => Array ( [isEmpty] => Please enter Admission No ) [admission_date] => Array

我有以下数组:

<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
                )

        )

)

我能有更好的主意吗?

您可以在文档页面中查看php函数和示例


另请参见

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

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
)
样本输出:

function finalKeys($array)
{
    global $return;
    foreach($array as $key) {
        if (is_array($key)) {
            finalKeys($key);
        }
        else {
            $return[] = $key;
        }
    }

    return $return;
}

简单的函数可以实现这一点

 private function getInternalErorrString($array) {
      foreach($array as $val) 
      {
         if(is_array($val)) {
            $this->getInternalErorrString($val);
         } 
         else {
            echo $val ."<br/>";
         }
      }
   }

   $this->getInternalErorrString($array);

用法:
finalKeys($多维数组)

我没有检查您的代码,但更改以下代码将得到您所期望的结果。如果您只想获取消息数组,那么可以使用public var来存储该值,而不是回显它

私有函数getInternalErrorString($array){
foreach($val形式的数组)
{
if(is_数组($val)){
$this->getInternalErrorString($val);
} 
否则{
echo$val.“
”; } } } $this->getInternalErrorString($array);
最终输出是什么?是否要获取
isEmpty
上的所有项目?
function finalKeys($array)
{
    global $return;
    foreach($array as $key) {
        if (is_array($key)) {
            finalKeys($key);
        }
        else {
            $return[] = $key;
        }
    }

    return $return;
}
 private function getInternalErorrString($array) {
      foreach($array as $val) 
      {
         if(is_array($val)) {
            $this->getInternalErorrString($val);
         } 
         else {
            echo $val ."<br/>";
         }
      }
   }

   $this->getInternalErorrString($array);