(PHP)检查数组中的项目

时间:2011-03-26 18:40:30

标签: php arrays

我有一个这样的数组:

阵列(A,B,C,A,B)

现在,如果我想查看数组中可以找到多少个“b”实例,我将如何处理?

4 个答案:

答案 0 :(得分:5)

请参阅array_count_values()的文档。这似乎是你在寻找的。

$array = array('a', 'b', 'c', 'a', 'b');
$counts = array_count_values($array);
printf("Number of 'b's: %d\n", $counts['b']);
var_dump($counts);

输出:

  

'b'的数量:2

     

数组(3){
    [ “一个”] => INT(2)
    [ “b” 的] => INT(2)
    [ “c” 的] => INT(1)   }

答案 1 :(得分:2)

使用array_count_values($arr)。这将返回一个关联数组,其中$arr中的每个值都作为键,而$arr中的值作为值。例如:

$arr = array(1, 2, 3, 4, 2);
$counts = array_count_values($arr);
$count_of_2 = $counts[2];

答案 2 :(得分:1)

您可以使用此功能计算实例数。

 $b = array(a,b,c,a,b);

 function count_repeat($subj, $array) {
    for($i=0;$i<count($array);$i++) {
       if($array[$i] == $subj) {
           $same[] = $array[$i]; //what this line does is put the same characters in the $same[] array.
        }
    return count($same);
 }

echo count_repeat('b', $b); // will return the value 2

答案 3 :(得分:0)

虽然有一些奇特的方法,但程序员应该能够使用非常基本的编程操作符来解决这个问题。
知道如何使用循环和条件是绝对必要的。

$count = 0;
$letters= array("a","b","c","a","b"); 
foreach ($letters as $char){
  if ($char == "b") $count = $count+1;
}
echo $count.' "b" found';

不是火箭科学。