【问题标题】:Count elements based on 2 columns in a multi-dimensional array根据多维数组中的 2 列计算元素
【发布时间】:2017-09-13 13:34:33
【问题描述】:

我有一个正在创建(和工作)的数组,其中我有多行,有 4 列。

输出示例:

Array (
modid => XYZ
year => 2017
name => Civic 2DR Auto
color => Blue
)

现在,我有几个结果……我想做的是输出一个摘要。

IE

XYZ 2017 Civic 2DR Auto Blue: 2
XYZ 2017 Accord 4DR Auto: Red 1
XYZ 2017 Accord 4DR Auto: Green 4

当 2 个列匹配 IE 'name' 和 'color' 时,我如何循环遍历数组并计数?

【问题讨论】:

  • 年份怎么样?
  • 创建嵌套关联数组,其键是您要匹配的列。循环遍历您的数组,并在 $counter_array[$el['name']]][$el['color']] 中增加计数器
  • 你检查我的答案了吗?
  • 字段 modid 是否应该是唯一标识符?

标签: php mysql arrays loops


【解决方案1】:

您需要拥有唯一的数组键才能对它们进行计数。

例如;

$inputarr = array(); // multidimensional array you provided

$col1 = "name";
$col2 = "color";

$countarr = array();
foreach($inputarr as $arr) {
    $key = str_replace(".","",$arr[$col1])."-".str_replace(".","",$arr[$col2]);
    if(!isset($countarr[$key])) { $countarr[$key]=0; }
    $countarr[$key]++;
}

print_r($countarr);

您稍后可以使用点和破折号分解 $countarr 键来构建您的表格。

这可能看起来不太好,但应该可以解决问题。

祝你好运?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-22
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多