Re: If Statements Array and Notice Undefined Index
| From: | Stuart Dallas | Date: | Thu, 31 Mar 2011 14:53:02 +0000 |
| Subject: | Re: If Statements Array and Notice Undefined Index | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-312158@lists.php.net to get a copy of this message | ||
On Thursday, 31 March 2011 at 15:45, Nicholas Cooper wrote:
Good day,
>
> I have three arrays A, B and C. Anyone of them might not have the 'id' key
> set which will give the Notice "Undefined index: id".
>
> I just wanted to know what the correct approach to this problem would be;
> without making the code overly complicated to read by introducing a number
> of "if isset" statements.
>
> if ($arrayA['id'] == $arrayB['id'] || $arrayC['id'] ==
> $arrayB['id']) {
>
> }
>
> I have notices switched off, but I want to know the right way to do this.
> There's probably a number of different right ways to solve this, how would
> you do it?
This is how I handle this...
// Define this function somewhere global
function ifsetor($array, $key, $default = null)
{
return (isset($array[$key]) ? $array[$key] : $default);
}
if (ifsetor($arrayA, 'id') == ifsetor($arrayB, 'id') || ifsetor($arrayC,
'id') == ifsetor($arrayB, 'id'))...
If you need to avoid a match if neither $arrayA nor $arrayB have an id you simply pass a different
default for each one.
-Stuart
--
Stuart Dallas
3ft9 Ltd
http://3ft9.com/