给定以下数组 $mm
Array
(
[147] => Array
(
[pts_m] =>
[pts_mreg] => 1
[pts_cg] => 1
)
[158] => Array
(
[pts_m] =>
[pts_mreg] =>
[pts_cg] => 0
)
[159] => Array
(
[pts_m] =>
[pts_mreg] => 1
[pts_cg] => 1
)
)
当我运行时,由于它不是递归的,所以会count(array_filter($mm))
得到3
结果。
count(array_filter($mm), COUNT_RECURSIVE)
也不会这样做,因为我实际上需要array_filter
递归运行,然后计算其结果。
所以我的问题是:array_filter($mm)
在这种情况下如何递归运行?我的预期结果是4
。
请注意,我没有使用任何回调,因此可以排除false,null和empty。
应该管用
$count = array_sum(array_map(function ($item) {
return ((int) !is_null($item['pts_m'])
+ ((int) !is_null($item['pts_mreg'])
+ ((int) !is_null($item['pts_cg']);
}, $array);
或许
$count = array_sum(array_map(function ($item) {
return array_sum(array_map('is_int', $item));
}, $array);
肯定还有更多可能的解决方案。如果你想使用array_filter()
(没有回调)记住,它把0
为false
过,因此它会 删除
任何0
从数组-值。
如果您在5.3之前的版本中使用PHP,则应使用foreach
-loop
$count = 0;
foreach ($array as $item) {
$count += ((int) !is_null($item['pts_m'])
+ ((int) !is_null($item['pts_mreg'])
+ ((int) !is_null($item['pts_cg']);
}
关于以下评论:
Thx @kc我实际上希望该方法删除false,0,空等
当这仅仅是您想要的时,解决方案也非常简单。但是现在我不知道该如何解释
我的预期结果是5。
无论如何,它现在很短:)
$result = array_map('array_filter', $array);
$count = array_map('count', $result);
$countSum = array_sum($count);
结果数组看起来像
Array
(
[147] => Array
(
[pts_mreg] => 1
[pts_cg] => 1
)
[158] => Array
(
)
[159] => Array
(
[pts_mreg] => 1
[pts_cg] => 1
)
)
问题内容: 目录类似于: 我正在使用与PHPMyAdmin使用的相同的PHPZip类。我不确定如何压缩目录而不是仅压缩文件。这是我到目前为止的内容: 但是当我尝试解压缩相应的已下载的zip文件时,出现“不允许操作” 仅当我尝试在Mac上解压缩时,才出现此错误,当我通过命令行解压缩时,文件解压缩就可以了。我是否需要在下载时发送特定的内容类型,当前为“application / zip” 问题答案:
问题内容: 如何通过$ _GET将数组类型的一个或多个变量传递给另一页? 我总是以以下形式传递变量值 那传球呢? 我是否需要编写一个for循环并附加所有值? 谢谢 问题答案: 您可以使用语法通过_GET传递数组: PHP理解此语法,因此等于。 您还可以指定键: 多维数组也可以工作: 自动执行此操作: 一种替代方法是传递json编码的数组: 您可以解析为: 并再次使用json_encode对其进行编
本文向大家介绍PHP递归统计系统中代码行数,包括了PHP递归统计系统中代码行数的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了PHP递归统计系统中代码行数的具体代码,供大家参考,具体内容如下 1、统计代码行数,必然用到的两个关键的知识点:函数递归以及文件读取。 函数递归无非就是在函数的代码中调用本身的函数名,以此形成递归循环 在文件读取中,有很多读取方式,采用了file()读取,按行
我有一个任务,它获取一个int值“n”和一个Int Array作为参数,并且应该返回一个布尔值。该方法应该确定给定数组中有多少个“n”。如果数字是偶数,则方法应该返回true,否则返回false。如果数组的长度为0,它也应该返回“false”。 我设法做到的是: 老实说,我真的很困惑,我不知道该怎么办。我真的已经尽力了,但是我在这项任务上工作的时间越长,我就越不理解。感谢任何帮助,并提前感谢您!:
问题内容: 我试图将硬盘上的某些文件夹放入阵列中。 例如,度假图片。假设我们具有以下结构: 套装1 第一组的项目1 第一组的项目2 第1套的项目〜 套装2 组2的子集1 组2的子集1的项目1 组2的子集1的项目… 第2组的子集2 随机文件,而不是目录。 套装3 … 我想要像这样的东西作为数组。 意思是我有1个大数组,在那个数组中有更多数组。每个集合和子集都有自己的数组。 我正在尝试使其看起来像
我需要使用这个方法: 然后使用递归计算存储在数组中的最大数、负数的计数以及正数的和。因此,您将在Assignment9类中创建递归方法findMax、countNegative和ComputeSum积极,它们将由main方法调用。 具体来说,必须实现以下递归方法(这些方法不应包含任何循环): 在数组中 如果我能算出这个负的,我就能算出计算的正的。 计数可以是你需要的任何东西。我把它更多地用作Fin