需要帮助的分组PHP数组
问题描述:
我有一个MySQL查询该吐出来的是以下数组:需要帮助的分组PHP数组
Array
(
[0] => stdClass Object
(
[item1] => foo 0
[item2] => bar 0
[catid] => 3
)
[1] => stdClass Object
(
[item1] => foo 1
[item2] => bar 1
[catid] => 7
)
[2] => stdClass Object
(
[item1] => foo 2
[item2] => bar 2
[catid] => 10
)
[3] => stdClass Object
(
[item1] => foo 3
[item2] => bar 3
[catid] => 7
)
)
我想知道是否有可能按“类别”的阵列,所以不是重复catids,会有一个catid,每个对象都在里面..如果这有道理的话?所以说catid 7只会出现一次,里面有两个item1/item2。
答
这个怎么样?
foreach($results as $result) {
$by_category[$result->catid][] = $result;
}
print_r($by_category);
答
$ret = array();
foreach ($array as $value) {
foreach ($value as $key => $item) {
if ($key == 'catid') continue;
$ret[$value['catid']][] = $item;
}
}
答
你可以用ouzo goodies做到这一点:
$categories = Arrays::groupBy($results, Functions::extractField('catid'));
参见:http://ouzo.readthedocs.org/en/latest/utils/arrays.html#groupby
感谢那个,但我怎么把适当的类别里面的物品?我仍然有重复的类别:) – SoulieBaby 2010-09-22 03:36:24
你将需要详细说明你想如何组合他们。 – Amber 2010-09-22 05:40:21