Count()到PHP中的多维数组中

Count()到PHP中的多维数组中,php,arrays,Php,Arrays,如果我有这个数组: Array ( [0] => Array ( [booking_id] => 1 [booking_status] => confirmed [client_name] => Bale [client_firstname] => Gareth [days] => Array ( [day_id] => 2016-11-23,

如果我有这个数组:

Array (
    [0] => Array (
        [booking_id] => 1
        [booking_status] => confirmed
        [client_name] => Bale
        [client_firstname] => Gareth
        [days] => Array (
            [day_id] => 2016-11-23,2016-11-24
            [room_id] => 2
        )
    )
)

我如何才能将项目的数量输入到
日\u id
请?

您可以使用
数组\u reduce
遍历数组项目并获得最终结果。看看:

$sum = 0;
foreach ($data as $booking) {
    $sum += sizeof(explode(",",$booking["days"]["day_id"]));
}
更新


请注意,您还可以提供对
数组_过滤器的回调,以过滤出需要计数的条目,例如regex检查每个条目是否为有效日期。以下是。

您可以使用
array\u reduce
遍历数组项并获得最终结果。看看:

更新

请注意,您还可以提供对
数组_过滤器的回调,以过滤出需要计数的条目,例如regex检查每个条目是否为有效日期。这是。

$sum=0;
对于($count=0;$count
$sum=0;
对于($count=0;$count
为什么我不能使用count函数?为什么我不能使用count函数?为什么我不能使用count函数?
count()
仅对数组的第一级元素进行计数;而且,您似乎对字符串中的日期计数感兴趣,
count()
无法处理。为什么我不能使用count函数?
count()
只计算数组的第一级元素;而且,您似乎对字符串中
count()
无法处理的日期计数感兴趣。
function reduce_func($carry, $item){
    if (isset($item['days']) && !empty($item['days']['day_id'])){
        $carry += count(array_unique(array_filter(explode(',', $item['days']['day_id']))));
    }
    return $carry;
}

$result = array_reduce($arr, "reduce_func", 0);
$sum =0;
for ($count = 0; $count < count($data); $count++) {
    $booking = $data[$count];
    $day_ids = explode(",", $booking['days']['day_id'];
    $sum     = $sum + count($day_ids);
}