php在复杂的文章中循环

php在复杂的文章中循环,php,associative-array,Php,Associative Array,我对网络编程还不熟悉,我的工作中到处都是如此复杂的帖子这是var\u dump($\u POST)的结果,我使用gettype()函数来确定$arr数组中的值是否是另一个数组,我不方便我的这种代码行为,我在循环插入时经常遇到的问题 问题是,是否有更聪明的技术可以像这样在复杂的帖子中循环,其次,如何在调用助手的2d数组中捕获名称、电话(调用助手['name'],助手[电话]) 您可以像这样使用递归函数 <?php $arr = array( "nam

我对网络编程还不熟悉,我的工作中到处都是如此复杂的帖子这是
var\u dump($\u POST)
的结果,我使用
gettype()
函数来确定
$arr
数组中的值是否是另一个数组,我不方便我的这种代码行为,我在循环插入时经常遇到的问题

问题是,是否有更聪明的技术可以像这样在复杂的帖子中循环,其次,如何在调用
助手的2d数组中捕获名称、电话(调用
助手['name']
助手[电话]


您可以像这样使用
递归
函数

<?php
    $arr = array(
                 "name"=> "mmmkkkk", 
                 "phones"=> array(
                                  "01553338897" , 
                                  "09090909098"
                                 ), 
                 "address"=> "107 ostras., Germany", 
                 "assistant"=> array(
                                      "name" => array(
                                                      "kmkkm",
                                                      "komar"
                                                     ), 
                                      "phone"=> array(
                                                      "01043338897" , 
                                                      "09099090090"
                                                     )
                                   )
                );

    function rec($arr) {

        foreach($arr as $key => $p_value)
        {
            if (is_array($p_value)) {
                rec($p_value);
            } else {
                echo $key.":".$p_value."\n";
            }
        }

    }

    rec($arr);

?>

想想递归

function walkThrough($array, $tabulation = 0) {
    foreach($array as $key => $value) {
        printf ('%s%s:', str_repeat(4*$tabulation, '&nbsp;'));

        if (is_array($value))   walkThrough ( $value, ($tabulation+1) );
        else                   printf('%s<br />', $value);
    }
}
函数演练($array,$tablation=0){
foreach($key=>$value的数组){
printf(“%s%s:”,str_repeat(4*$tablation),);
if(is_数组($value))演练($value,($tablation+1));
else printf(“%s
,$value); } }
使用此递归函数

function recursivefunc($arr,$key =''){
if(is_array($arr)){
    foreach($arr as $k => $v){
        if (is_array($v) && !empty($v)) {
            recursivefunc($v,$k);
        } else {
            $keys = ($key=='') ? $k : $key;
            echo $keys.":".$v.'</br>';
        }
    }
}
}
recursivefunc($arr);

abc(p_值);应为rec(p_值);啊!!多谢各位@RavinderRedythank代表着知识的力量,。。。如果有什么好方法来处理助手数组?通过助手['name']['phone']而不是在每列上分别循环,因此您需要以下格式:
assistant:
name:phone
。正确的?对这是可能的。在那之前,我需要知道一些事情。助手数组的数组格式是可变的还是始终遵循当前格式?助手:+如果我想添加多个助手,那么会重新生成多个助手的多个s。。。
function recursivefunc($arr,$key =''){
if(is_array($arr)){
    foreach($arr as $k => $v){
        if (is_array($v) && !empty($v)) {
            recursivefunc($v,$k);
        } else {
            $keys = ($key=='') ? $k : $key;
            echo $keys.":".$v.'</br>';
        }
    }
}
}
recursivefunc($arr);
name:mmmkkkk
phones:01553338897
phones:09090909098
address:107 ostras., Germany
name:kmkkm
name:komar
phone:01043338897
phone:09099090090