0
$marks=array( 
            "mohammad" => array (
               "physics" => array([0]=>35,[1]=>45)
               "maths" => 30,   
               "chemistry" => 39
            ),

            "qadir" => array (
               "physics" => array(),
               "maths" => 32,
               "chemistry" => 29
            ),

            "zara" => array (
               "physics" => array([0]=>),
               "maths" => 22,
               "chemistry" => 39
            )
         );

In the above array, "physics" element has array of values in "mohammad",empty array in "qadir" and in "Zara" it has index [0] with no value.

How can we check for "physics" is empty array or empty value for first index?

I have tried in if loop like below:

$name ='qadir'
if(!empty($marks[$name]['physics'])){//do here}

The above code working fine for 'qadir' but not for 'Zara'.I wish to check both cases at the same time.

Please suggest your thoughts.

3 Answers 3

3

Use array_filter(). This will remove any empty values from the array which will check the empty condition correctly. Something like:

$filteredArray = array_filter($marks[$name]['physics']);
if(!empty($filteredArray)) {//do here}
Sign up to request clarification or add additional context in comments.

3 Comments

,it is working fine..but in my php editor it showing error Arbitrary expressions in empty is allowed only in php 5.5..But my php version is 5.5.12
Hi..It is working fine..I have question why it is not working out if filter with whole array like array_filter($marks).
PHP manual says empty — Determine whether a **variable** is empty and array_filter is a function call not a variable - Kindly accept this answer if this resolved your issue
1

Try this:

if (!empty($marks[$name]['physics']) || !isset($marks[$name]['physics'][0])) {

Comments

0

Use bellow code for null check in array

if(!empty($marks[$name]['physics']){
   if(!in_array(null, $haystack, true)){
     //do here
   }
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.