如何在foreach中计算数组

Posted

技术标签:

【中文标题】如何在foreach中计算数组【英文标题】:How to count array in foreach 【发布时间】:2020-07-20 13:11:12 【问题描述】:

我的代码是:

foreach ($suratmasuk as $key => $h) 
  $suratkeluar = $this->db->query("SELECT * FROM surat_masuk WHERE lampiran LIKE '%$h->surat_id%'")->row_array()['suratmasuk_id'];
  echo count($suratkeluar);

结果是:

11

但我想要的结果是:

2

因为数组中有两个数据。如何?请帮助我

【问题讨论】:

这是一个shell问题吗?请添加相关标签... 你说数组中有两个数据是指哪个数组? @NigelRen 变量 $suratkeluar 所以在 foreach 中有 2 个数据,我希望结果是 2 而不是 11。 我错误地删除了codeigniter 标签。请通过替换arrays 重新添加(foreach 已经存在) 【参考方案1】:

echo count($suratkeluar); 退出循环。现在,您为每次迭代创建一个数组并计算该数组的元素。所以结果是11 -----> 11

尝试关注

$suratkeluar = array();
foreach ($suratmasuk as $key => $h) 
  $suratkeluar[] = $this->db->query("SELECT * FROM surat_masuk WHERE lampiran LIKE '%$h->surat_id%'")->row_array()['suratmasuk_id'];

echo count($suratkeluar);

【讨论】:

非常感谢:)【参考方案2】:

如果你返回数据对象你需要做这个

回声计数(array() $suratkeluar);

count() 不适用于数据对象

【讨论】:

以上是关于如何在foreach中计算数组的主要内容,如果未能解决你的问题,请参考以下文章

在Python中计算数组元素[重复]

在 C# 中计算数组频率分布的最快方法是啥?

在 MS Access 查询中计算数字的幂

Python(66)_判断用户传入的参数str中计算数字,字母,空格,以及其他的个数,并返回结果

如何在 Slick 2.0 中计数(*)?

如何在列表索引中计数()