首页 > 解决方案 > 我需要计算数组值

问题描述

我需要计算数组值

$str = '"Cat","A","A","A","A"';

$abc=array($str, "A","Cat","Dog","A","Dog");
print_r(array_count_values($abc));

结果出来了:

 Array ( ["Cat","A","A","A","A"] => 1 [A] => 2 [Cat] => 1 [Dog] => 2 )

但我需要这样:

 Array ( [A] => 6 [Cat] => 2 [Dog] => 2 )

标签: phparrays

解决方案


这是因为$str是字符串而不是数组。因此,这将作为一个元素添加到$abc数组中。

您可以使用以下函数将 in 转换为数组explode

$str = '"Cat","A","A","A","A"';
$arr = explode(',', $str);
// So $arr is Array([0] => "Cat", [1] => "A", [2] => "A", [3] => "A", [4] => "A")

然后您需要删除每个元素周围的双引号。我建议使用该trim函数和array_map, 将其应用于每个元素:

$arr = array_map(function ($item) { return trim($item, '"'); }, $arr);
// $arr is Array([0] => Cat, [1] => A, [2] => A, [3] => A, [4] => A)

然后您可以将其与其余值合并:

$abc = array_merge($arr, array("A","Cat","Dog","A","Dog"));
print_r(array_count_values($abc));
// Should be Array ( [A] => 6 [Cat] => 2 [Dog] => 2 )

推荐阅读