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, ' '));
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