在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"