tags:

views:

471

answers:

2

In PHP, how would one check to see if a specified item (by name, I think - number would probably also work) in an array is empty?

+5  A: 
if(empty($array['item']))

or

if(!isset($array['item']))

or

if(!array_key_exists('item', $array))

depending on what precisely you mean by "empty". See the docs for empty(), isset() and array_key_exists() as to what exactly they mean.

chaos
OK. What kinds of empty are there?
Nathaniel
Addendum: I think the item(s) I'm dealing with look like => '',What would that be?
Nathaniel
That will be empty, set, and existant.
chaos
Alright, time to read some stuff. Thanks.
Nathaniel
+6  A: 

Types of empty (from PHP Manual). The following are considered empty for any variable:

  • "" (an empty string)
  • 0 (0 as an integer)
  • "0" (0 as a string)
  • NULL
  • FALSE
  • array() (an empty array)
  • var $var; (a variable declared, but without a value in a class)

So take the example below:

$arr = array(
          'ele1' => 'test',
          'ele2' => false           
       );

1) $arr['ele3'] is not set. So:
isset($arr['ele3']) === false && empty($arr['ele3']) === true
it is not set and empty. empty() checks for whether the variable is set and empty or not.

2) $arr['ele2'] is set, but empty. So:
isset($arr['ele2']) === true && empty($arr['ele2']) === true

1) $arr['ele1'] is set and not empty:
isset($arr['ele1']) === true && empty($arr['ele1']) === false

if you wish to check whether is it empty, simply use the empty() function.

thephpdeveloper
Oooh, helpful. I would upvote you guys if I had enough rep. Heh.
Nathaniel