PHP elseif statement not executed even though initial if statement is false
Posted
by DarwinIcesurfer
on Stack Overflow
See other posts from Stack Overflow
or by DarwinIcesurfer
Published on 2010-06-14T21:53:05Z
Indexed on
2010/06/14
22:02 UTC
Read the original article
Hit count: 251
I am writing a recursive function to print out the differences between 2 multildimensional php arrays. The purpose of this code is to see the difference between jpeg headers to deteremine how adobe bridge cs3 is saving rating information within the jpg file.
When I am single-stepping through the code using my eclipse - zend debugger ide, it appears that even though the initial if statement is false (ie both values are arrays), the subsequent elseif statements are never executed. The function is attached below.
function array_diff_multi($array1,$array2,$level){ $keys = array_keys($array1); foreach($keys as $key) { $value1 = $array1[$key]; if(array_key_exists($key,$array2) ){ $value2 = $array2[$key]; // Check if they are both arrays, if so recursion is needed if (is_array($value1) && is_array($value2)){ array_diff_multi($value1,$value2,$level . "[ " . $key . " ]"); } // the values aren't both arrays *** THE CODE IN THE ELSEIF BELOW IS NOT EXECUTED *** elseif(is_array($value1) != is_array($value2)){ print "
" . $level . $key ."=>" . $value1 . "as array, compared to ". $value2 ."
"; } // the values don't match elseif($value1 != $value2){ print "
" . $level . $key ."=>" . $value1 ." != " . $value2 ."
"; } else; } else{ print "
" . $level. $key . "does not exist in array2"; } } }
© Stack Overflow or respective owner