Есть массивы:
$data = [
array(
[0] => "Автобусные",
[1] => "Пешеходные"
),
array(
[0] => "Исторические",
[1] => "Пешеходные",
[2] => "Водные"
),
array(
[0] => "Пешеходные",
[1] => "Тематические",
[2] => "Исторические"
)
];
Длинный способ:
$result = [];
foreach ($data as $row) {
foreach ($row as $val) {
if(!empty($val)) array_push($result, $val);
}
}
$result = array_count_values($result);
Результат:
Array(
[Автобусные] => 1
[Пешеходные] => 3
[Исторические] => 2
[Водные] => 1
[Тематические] => 1
)
Есть ли способ пересчитать значения в массивах быстрее?
Изначально имеем следующий массив:
$data = [
['Автобусные', 'Пешеходные' ],
['Исторические', 'Пешеходные', 'Водные'],
['Пешеходные', 'Тематические', 'Исторические']
];
Способ с RecursiveIteratorIterator
:
foreach (new RecursiveIteratorIterator(new RecursiveArrayIterator($data)) as $v)
$result[] = $v;
print_r(array_count_values($result));
Или вариант с использованием call_user_func_array
:
print_r(array_count_values(call_user_func_array('array_merge', $data)));
Или вариант с использованием array_reduce
:
print_r(array_count_values(array_reduce($data, 'array_merge', [])));
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть таблица в базе данных, в которой существует 4 нужных нам столбца: "date", "vsego", "zabronirovano", "nomer"
есть допустим таблица из 2 столбцовОна создается при нажатии на кнопку без перезагрузки страницы