Podemos obter o tamanho de um array utilizando a função count():
$a = array(1, 2, 4);
$b = array();
$c = 10;
echo count($a); // Resultado 3
echo count($b); // Resultado 0
echo count($c); // Resultado 1
Como você pode ver, a função count() não pode ser usada para verificar se uma variável contém um array, se for executado em um valor numérico, irá retornar um. A maneira correta de se verificar se uma variável é um array, é a utilizando a função is_array().
$a = array(1, 2, 4);
$b = 10;
echo is_array($a); // Resultado true
echo is_array($b); // Resultado false
Um problema similar existe quando tentamos descobrir se uma determinada chave existe no array. Isso geralmente é feito chamando isset():
$a = array(’a’ => 1, ’b’ => 2);
echo isset($a[’a’]); // Resultado True
echo isset($a[’c’]); // Resultado False
No entanto, isset() tem a grande desvantagem de considerar um elemento cujo valor é NULL, que é perfeitamente válido como inexistente:
$a = array(’a’ => NULL, ’b’ => 2);
echo isset($a[’a’]); // Resultado False
A maneira correta de determinar se existe um elemento no array é a utilização da função array_key_exists():
$a = array (’a’ => NULL, ’b’ => 2);
echo array_key_exists ($a[’a’]); // Resultado True
Obviamente, estas funções não lhe permitirá determinar se um elemento com um dado valor existe em um array, isto é, ao invés, realizado pela função in_array():
$a = array (’a’ => NULL, ’b’ => 2);
echo in_array ($a, 2); // Resultado True
Finalmente, um elemento pode ser excluído de um array usando a função unset():
$a = array (’a’ => NULL, ’b’ => 2);
unset ($a[’b’]);
echo in_array ($a, 2); // Resultado False