我从我的查询中获得了期望的结果,现在我无法在 中找出如何将数据操作为可用的数据。PHP在特定数组列中有多少个唯一值
最终目标是谷歌图表使用的json输出,我可以在 任何一个单一的组件没有问题。
我需要的输出看起来像这样(我不知道有多少分量怎么会后 月/年......它可能是0或10或20 ...):
['Month/Year', 'Wiper Blades', 'Mufflers'] [,[...]],
['March 2013', 13, 11],
['April 2013', 17, 19],
[...],
[...]
]);
这是我查询后的数组(因为我需要 cmpnt_name作为所需输出的第一行(上面),所以我要先构建数组):
Array
(
[0] => Array
(
[vmonth] => February
[vyear] => 2013
[cmpnt_count] => 9
[cmpnt_name] => Wiper blade
)
[1] => Array
(
[vmonth] => March
[vyear] => 2013
[cmpnt_count] => 13
[cmpnt_name] => Wiper blade
)
[2] => Array
(
[vmonth] => March
[vyear] => 2013
[cmpnt_count] => 11
[cmpnt_name] => Muffler
)
[3] => Array
(
[vmonth] => April
[vyear] => 2013
[cmpnt_count] => 17
[cmpnt_name] => Wiper blade
)
[4] => Array
(
[vmonth] => April
[vyear] => 2013
[cmpnt_count] => 19
[cmpnt_name] => Muffler
)
)
我无法循环访问数组,并将每个cmpnt_na我并追加到 所需输出的第一行...我只想独特。
另外一个组件可能不具有特定月份的任何意见(它可能没有甚至 当月存在的),所以我可能从二月最新组件,并且不被添加,直到后来,但其他部件 包括在计数中...即3月份添加了消声器 。
那么我该如何去查找第一行的唯一组件名称?
我在想:
function findUniques($cmpnt)
{
$names = array();
foreach($cmpnt as $item)
{
$key = $item['cmpnt_name'];
if(array_key_exists($key, $names))
{
$names[$key]++;
}
else
$names[$key] = 1;
}
return($names);
}
是否有这样的PHP函数?
有没有更好的方法来做到这一点?
将在array_unique()函数帮助你获得部件的唯一名称? – Floris 2013-04-25 19:54:51
array_unique()...试过了,太多的节点是唯一的,因为月/年/计数值 – ppetree 2013-04-25 20:08:56