Немного поздно, но это чистый способ написать.
$totalTickets = array_sum(array_map("count", $tickets));
Предположим, $tickets
- это ваш многомерный массив.
Я расширил код, чтобы датьобъясненный пример, потому что array_map может быть новым для некоторых
$tickets = array(
"type1" => array(
"ticket1" => array(),
"ticket2" => array(),
"ticket3" => array(),
),
"type2" => array(
"ticket4" => array(),
"ticket5" => array(),
"ticket6" => array(),
"ticket7" => array(),
),
"type3" => array(
"ticket8" => array()
)
);
// First we map count over every first level item in the array
// giving us the total number of tickets for each type.
$typeTotals = array_map("count", $tickets);
// print_r($typeTotals);
// $type_totals --> Array (
// [type1] => 3,
// [type2] => 4,
// [type3] => 1
// )
//Then we sum the values of each of these
$totalTickets = array_sum($typeTotals);
print($totalTickets);
// $totalTickets --> 8
Так что, поскольку нам не нужен промежуточный результат каждого типа, мы можем передать результат в array_sum
$totalTickets = array_sum(array_map("count", $tickets));