Php 在函数中调用函数在数组中显示
如何从函数内部调用函数Php 在函数中调用函数在数组中显示,php,arrays,function,recursion,Php,Arrays,Function,Recursion,如何从函数内部调用函数 function tt($data,$s,$t){ $data=$data; echo '[['; print_r($data); echo ']]'; if($t==0){ $data[]=$s; tt($data,'two',1); }else{ $data[]=$s; } return $data; } print_r(tt('','one',0));
function tt($data,$s,$t){
$data=$data;
echo '[[';
print_r($data);
echo ']]';
if($t==0){
$data[]=$s;
tt($data,'two',1);
}else{
$data[]=$s;
}
return $data;
}
print_r(tt('','one',0));
我希望在数组中显示“2”,如
$o[]='one';
$o[]='two';
print_r($o);
试试这个
function tt($data,$s,$t){
global $data;
if($t==0){
$data[]=$s;
tt($data,'two',1);
}else{
$data[]=$s;
}
return $data;
}
print_r(tt('','one',0));
输出:
Array
(
[0] => one
[1] => two
)
试试这个(注意函数签名,数组是通过ref和$data传递的):
这才是真正需要的
tt
时,您需要“捕获”它的返回数据,否则递归调用根本没有持久的价值else
,因为无论发生什么情况,都要将条目附加到数组中,并且不需要写两次您调用函数很好,但没有将数据传回。此外,您的第一条指令
$data=$data
没有任何作用……如何传递它?当我使用它时,它将我的其他函数组合到同一个数组中。很高兴提供帮助,尽管@deceze清理了函数,但您也应该考虑到这一点:-)
function tt(&$data,$s,$t){
echo '[[';
print_r($data);
echo ']]';
if($t==0){
$data[]=$s;
tt($data,'two',1);
}else{
$data[]=$s;
}
return $data;
}
$array = [];
tt($array,'one',0);
print_r($array);
/**
Array
(
[0] => one
[1] => two
)
*/
function tt($s, $t, array $data = array()) {
$data[] = $s;
if ($t == 0) {
$data = tt('two', 1, $data);
}
return $data;
}
print_r(tt('one', 0));