php数组在for循环中给出错误
我试图添加循环,但我得到错误…我试图在每次循环之前清除数组,但对我无效php数组在for循环中给出错误,php,arrays,function,Php,Arrays,Function,我试图添加循环,但我得到错误…我试图在每次循环之前清除数组,但对我无效 <?php for ($aw = 1; $aw <= 49; $aw++) { $cart = array("orange", "banana"); $result = array(); $combination = array(); function combinations(array $myArray, $choose) { global $resu
<?php
for ($aw = 1; $aw <= 49; $aw++) {
$cart = array("orange", "banana");
$result = array();
$combination = array();
function combinations(array $myArray, $choose) {
global $result, $combination;
$n = count($myArray);
function inner ($start, $choose_, $arr, $n) {
global $result, $combination;
if ($choose_ == 0) array_push($result,$combination);
else for ($i = $start; $i <= $n - $choose_; ++$i) {
array_push($combination, $arr[$i]);
inner($i + 1, $choose_ - 1, $arr, $n);
array_pop($combination);
}
}
inner(0, $choose, $myArray, $n);
return $result;
}
$array=combinations($cart, 6); // this is your 2d array
$counnumber=1;
foreach ($array as $row) {
$counnumber++;
}
echo $counnumber;
}
请检查以下代码,并帮助我
谢谢您在循环中声明了
组合
函数。将其移出循环
function combinations(array $myArray, $choose) {
global $result, $combination;
$n = count($myArray);
function inner ($start, $choose_, $arr, $n) {
global $result, $combination;
if ($choose_ == 0) array_push($result,$combination);
else for ($i = $start; $i <= $n - $choose_; ++$i) {
array_push($combination, $arr[$i]);
inner($i + 1, $choose_ - 1, $arr, $n);
array_pop($combination);
}
}
inner(0, $choose, $myArray, $n);
return $result;
}
for ($aw = 1; $aw <= 49; $aw++) {
...
函数组合(数组$myArray,$choose){
全球$结果$组合;
$n=计数($myArray);
函数内部($start,$choose,$arr,$n){
全球$结果$组合;
如果($choose_==0)数组_push($result,$combination);
对于($i=$start;$i查看错误,当您第一次调用循环时,您声明了函数
在此之后,每次在循环中重新定义相同的函数=>error
// function declaration here
// you can call the function inside the loop here
我认为错误信息是不言自明的,不是吗?P.S.嵌套函数是一个坏主意。可能会重复以下错误“可捕获致命错误:传递给combines()的参数1必须是一个数组,给定null,称为I”
// function declaration here
// you can call the function inside the loop here