在PHP中防止UndefinedIndex错误

在使用多层次数组时,您是否会遇到UndefinedIndex的问题?
我已经发明了一个可以解决这个问题的函数!(虽然它只是非常简单的代码)

if (!function_exists('IFERROR')){
    function IFERROR($ary,$idx,$val='-'){
        if (is_string($idx) || is_numeric($idx) {
            return (isset($ary[$idx])) ? $ary[$idx] : $val;
        }else{
            foreach($idx as $i){
                if (!isset($ary[$i])){
                    return $val;
                }else{
                    $ary = $ary[$i];
                }
            }
            return $ary;
        }
    }
}

运用方法

$ary = ['abc'=>['x'=>'test','def'=>'test2']]; //こんな配列があったとして

// 階層順のindexを配列で $ary['abc']['def'] のような場合
$idx = ['abc','def'];
IFERROR($ary,$idx,'-');  // indexがある場合、値を、ない場合"-"を返す

IFERROR($ary,['abc','efg'],0);  // => 0
IFERROR($ary,['abc','def'],0);  // => "test2"
广告
将在 10 秒后关闭
bannerAds