Если у вас есть массив folder_ids, вы можете использовать array_count_values
, чтобы получить именно тот результат, который вам нужен.Итак, давайте сделаем такой массив из массива объектов, используя array_map
:
$callback = function($item) { return $item->folder_id; };
$result = array_count_values(array_map($callback, $items));
В результате $result
будет
array(
1 => 2,
2 => 1,
3 => 1,
);
Вы также можете написать обратный вызов для одной строки, или, если вы используете PHP <5.3, вы можете написать его как бесплатную функцию или, альтернативно, использовать <code>create_function.
См.это в действии (версия для PHP <5.3). </p>
Обновление: продолжение
Учитывая $results
сверху, ваш цикл будет:
foreach($results as $folder_id => $count) {
if($count > 1) {
// There were $count items with folder_id == $folder_id
}
// else blah blah
}