2012-10-16 35 views
1

我试图使用从答案的代码这个问题:Count values in subarray计数具有一定值,其中值是子阵列的总数的变量

但它并不希望与变量的工作?

因此,举例来说,这个工程:

echo count(array_filter($tasks, function($element){ 
    return $element['parent'] == 15; 
})); 

回声出来:4

但这种失败:

$number = 15; 

//Kolla ifall denna har subtasks? 
echo count(array_filter($tasks, function($element) { 
    return $element['parent'] == $number; 
})); 

回声出0

任何想法为什么?

+0

同样的问题一如既往:什么是 “失败” 是什么意思? – arkascha

+0

对不起,我更新了这个问题 – Alisso

回答

1

因为$number不可用lambda函数内,加use ($number)

$number = 15; 
//Kolla ifall denna har subtasks? 
echo count(array_filter($tasks, function($element) use ($number) { 
return $element['parent'] == $number; 
})); 
+0

太酷了! (该框表示我可以在9分钟内接受答案... – Alisso

+0

您可能还想考虑将变量'$ number'作为函数参数来处理,这使得代码更易于理解 – arkascha

+0

我不认为'array_filter ()'可以做到这一点,我认为它不会让它更容易。对于PHP 5.2,这里有一个丑陋的解决方法:http://stackoverflow.com/questions/5482989/php-array-filter-with -arguments – AndreKR

相关问题