Seems a little... less-than-obvious? Perhaps an array_filter() and a count() would be more readable?