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.Awhile
循环应用于没有简单计数器的情况,即使是for
循环也会更好,因为它将计数器放在一个地方。