循环在哪里?
我有这样的代码:循环在哪里?
function filterVencimientos ($arrayFull) {
$filtered = array_filter($arrayFull, 'month');
var_dump($filtered);
return $filtered;
}
function month ($var) {
$response = false;
if (is_array($var)) {
foreach ($var as $item) {
$response = month($var);
}
} else {
$date = date('Y-m');
$response = (stripos($var, $date) !== false);
}
return $response;
}
function getFiltered() {
$arrayFull = getVencimientosPorPerfil();
$arrayFiltered = filterVencimientos($arrayFull);
return $arrayFiltered;
}
而返回此:
Fatal error: Out of memory (allocated 4194304) (tried to allocate 262144 bytes) in C:\xampp\htdocs\app\miramonteapp\api\yscript.php on line 244
我试图去通过这个数组:
array(1) {
[258]=>
array(9) {
["recaudacion"]=>
array(13) {
[0]=>
string(10) "2017-01-07"
[1]=>
string(10) "2017-02-07"
}
["Contribuyentes Convenio Multilateral"]=>
array(13) {
[0]=>
string(10) "2017-01-13"
[1]=>
string(10) "2017-02-13"
}
}
}
哪里是造成了圈外内存错误?
你的错误是foreach
内的month()
功能:
$response = month($var);
您应该运行在$item
变量month()
功能。
这里是穷人编译器试图做:
-
month()
是通过$var
- 呼叫
month()
与完全相同参数中的所有元素调用数组作为$var
- 循环如通过。
-
month()
被称为...等
第4步是,同步骤1,所以编译器英勇一直试图运行你的代码,这只是一遍又一遍运行相同的功能:“(
那么,编写代码以实现我的目标的正确方法是什么? –
我想获得这样的:'阵列(1){ [258] => 阵列(9){ [ “recaudacion”] => 阵列(13){ [0] => 串(10) “2017年10月7日” } [ “Contribuyentes跨省多边”] =>数组 (13){ [0] => 串(10) “2017年10月13日” } } }' –
即除当前月份以外的所有内容 –
'的foreach($ var当成$项) {$ response = month($ var); }'你正在使用'$ var'而不是'$ item'。 –