如何查找PHP中2個值之間的數組中存在的數組元素的數量。獲取否。在PHP中的某些值之間的數組元素?
可以說這是我的數組=>
$a = array(1,2,3,5,10);
我想找到2個值即2和10之間的陣列的長度因此,答案將是3的情況下。如果要搜索的最高值存在於數組中,則應該將其添加到計數中。
2和9之間也長度陣列的是2
希望我清楚與我的問題。任何幫助,將不勝感激。
如何查找PHP中2個值之間的數組中存在的數組元素的數量。獲取否。在PHP中的某些值之間的數組元素?
可以說這是我的數組=>
$a = array(1,2,3,5,10);
我想找到2個值即2和10之間的陣列的長度因此,答案將是3的情況下。如果要搜索的最高值存在於數組中,則應該將其添加到計數中。
2和9之間也長度陣列的是2
希望我清楚與我的問題。任何幫助,將不勝感激。
使用array_filter()
到陣列濾除小至匹配元素,則在產生的過濾數組上使用count()
。
$a = array(1,2,3,5,10);
print count(array_filter($a, function($e) {return ($e>=2 && $e<=10);}));
希望有所幫助。
注意:我在這裏使用的嵌入函數的語法需要PHP v5.3或更高版本。
[編輯]
把它變成一個簡單的可調用的函數:
$a = array(1,2,3,5,10);
print countInRange(2,10);
function countInRange($min,$max) {
return count(array_filter($a, function($e) use($min,$max) {return ($e>=$min && $e<=$max);}));
}
見PHP手冊上array_filter()
function更多信息。
$count = 0;
$min = 2;
$max = 10;
$a = array(1,2,3,5,10);
foreach($a as $val) {
if($val > $min && $val <= $max) ++$count;
}
這應該工作吧?至少它會找到所有的數字,這些數字高於你的最小值,但小於/等於你的最大值。
當然這也意味着,的1, 2, 9, 5
陣列將返回2中,由於兩個9和圖5是大於2且小於10。
$count = 0;
for($i = 0; $i < count($a); $i++) {
if($a[$i] <= $max && $a[$i] >= $min)
$count++;
}
echo $count;
你知道,這可能會給他整個陣列數。因爲一切都小於最大值或大於最小值。 – ATaylor 2013-03-19 11:38:18
@ATaylor哦,該死!現在修復。謝謝 – hjpotter92 2013-03-19 11:41:49
請允許我問一下,這有什麼限制嗎?像:你不能使用循環或其他東西? – ATaylor 2013-03-19 11:33:29
4到10之間應該是2或1? – hjpotter92 2013-03-19 11:33:58
如果你在你的數組中有相同的值,可以在兩個地方說2,然後從你的數組開始計數的位置開始? – 2013-03-19 11:34:17