Php 数组中特定字段的计数

Php 数组中特定字段的计数,php,count,Php,Count,我有一个数组(绘制),其中的输出如下所示: array(3) { ["id"]=> string(1) "2" ["type"]=> string(1) "O" ["number"]=> string(1) "1" } array(3) { ["id"]=> string(1) "3" ["type"]=> string(1) "W" ["number"]=> string(1) "3" } array(3) { [

我有一个数组(绘制),其中的输出如下所示:

array(3) {
   ["id"]=> string(1) "2"
   ["type"]=> string(1) "O"
   ["number"]=> string(1) "1"
}

array(3) {
   ["id"]=> string(1) "3"
   ["type"]=> string(1) "W"
   ["number"]=> string(1) "3"
}
array(3) {
   ["id"]=> string(1) "4"
   ["type"]=> string(1) "W"
   ["number"]=> string(1) "5"
}
等等

我尝试的是type字段包含W的频率。 所以在这种情况下,我的输出应该是2。 他应该跳过第一个字段,因为那里的type字段是O

我尝试的是:

 $sum = count($paint["type=W"]);
但这不起作用。
可以只计算类型值为W的频率吗?

简单的for循环怎么样

 var count = 0;
 for (var i =0; i< array.length; i++) {
      if($paint[i]['type'] === 'W'){
           count++;
      }
 }
var计数=0;
对于(var i=0;i
简单的for循环怎么样

 var count = 0;
 for (var i =0; i< array.length; i++) {
      if($paint[i]['type'] === 'W'){
           count++;
      }
 }
var计数=0;
对于(var i=0;i
尝试使用:

尝试使用:


希望这篇简单的文章会有帮助。在这里,我们使用数组上的
array\u列
来获取键为
type
的所有值,然后使用
array\u count\u值
对值进行计数

输出:
2

希望这篇简单的文章会有所帮助。在这里,我们使用数组上的
array\u列
来获取键为
type
的所有值,然后使用
array\u count\u值
对值进行计数

输出:
2

使用while循环:

<?php
$paint = array();
$i=0;
$x=0;
while($i<count($paint)){
    if($paint[$i][1]=="W"){
        $x++;
    }
    $i++;
}
使用while循环:

<?php
$paint = array();
$i=0;
$x=0;
while($i<count($paint)){
    if($paint[$i][1]=="W"){
        $x++;
    }
    $i++;
}


$sum=count($paint[“type=W”])可能有点输入错误,只需插入]@North Wind:这可能不包含语法错误,但仍不能满足Robbert的要求。我在第一篇文章中编辑了此内容。但这仍然不起作用。后续数组之间的关系是什么?它是二维数组吗?数组是否从某个对象中检索?使用
array\u column
array\u count\u value
获得所需的结果。
$sum=count($paint[“type=W”])可能有点输入错误,只需插入]@North Wind:这可能不包含语法错误,但仍不能满足Robbert的要求。我在第一篇文章中编辑了此内容。但这仍然不起作用。后续数组之间的关系是什么?它是二维数组吗?数组是否从某个对象中检索?使用
array\u column
array\u count\u value
以获得所需的结果。现在假设为2D数组?这些信息不在问题中。现在假设是2D数组?该信息不在问题中。此解决方案假设它是2D数组,我们不知道。否则,问题就没有多大意义:(数组可以从数据库中提取行。逐个提取。@Robbert:啊,这毕竟是一个2D数组,谢谢你让我们知道。这个解决方案假设它是一个2D数组,我们不知道。否则这个问题就没有多大意义了:(数组可以从数据库中提取行。逐个提取。@Robbert:啊,这毕竟是一个2D数组,谢谢你让我们知道。这太难看了,为什么不使用
foreach
循环呢?这是品味的问题,我的朋友。@t1gor:是的,但也有经验。
foreach
循环有一个内置计数器,你无法得到它。)如果使用
while
循环,您可能会在
$x++;
-
$i++;
中迷失方向,将它们混合在一起并导致一个困难的错误。如果您没有简单的计数器,则应该使用
while
循环,即使
for
循环也会更好,因为它将计数器放在一个地方。这是很难看,为什么不使用
foreach
循环呢?这是品味的问题,我的朋友。@t1gor:是的,但也有经验。
foreach
循环有一个内置计数器,你不会出错。如果使用
while
循环,你可能会在
$x++;
-
-
$i++;
中迷失方向,把它们混在一起,造成困难的bug.A
while
循环应用于没有简单计数器的情况,即使是
for
循环也会更好,因为它将计数器放在一个地方。