我希望计算数组课程中具有内部值Completed => true的值。当我进行标准计数时,有两个值。我尝试过is_array和array_filter
count($employee['Course']
输出:2
Course(array)
0(array)
id:1
name:Handling
CoursesEmployee(array)
id:1
employee_id:1
course_id:1
completed(true)
1(array)
id:3
name:Induction
CoursesEmployee(array)
id:2
employee_id:1
course_id:3
completed(false)
答案 0 :(得分:1)
如果您使用的是PHP 5.3或更高版本,则可以通过单个表达式完成:
count(
array_filter(
$employee['Course'],
function($item){return $item['CoursesEmployee']['completed'];}
)
)
查看array_filter和anonymous functions上的文档。
答案 1 :(得分:1)
您还可以使用array_reduce
,它可以将数组研磨成单个结果。
array_reduce( $employee['Course'], function( $carry, $item ) {
return $carry + (bool)$item['CoursesEmployee']['completed'] ) {
}, 0 );
使用布尔值的int值为0表示false或1表示true。