PHP注意:循环数组时未定义的索引

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP注意:循环数组时未定义的索引脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在循环一个维数组,如下所示:
if (!empty($aka)) {
    foreach ($aka as $ak) {
        if($ak["lang"]=="es") {
            $sptITle=$ak["title"];
        }
    }
}

简单.如果数组($aka)不为空,我循环通过它,当它发现“lang”索引等于“es”时,我只是在$sptitle中保存该索引的“title”值.

问题是数组($aka)包含大量信息,有时没有“lang”索引……我得到这个错误:注意:未定义的索引:lang.

怎样才能解决这个问题???

这是数组的摘录,以帮助您理解.请注意,[1]没有[lang]索引,但[2]确实有:

[1] => Array
    (
        [title] => "The Lord of the Rings: The Motion Picture"
        [year] => ""
        [country] => "USA"
        [comment] => "promotional title"
    )

[2] => Array
    (
        [title] => "Señor de los anillos: La comunidad del anillo,El"
        [year] => ""
        [country] => "argentina"
        [comment] => "Chile,Mexico,PEru,Spain"
        [lang] => "es"
    )

谢谢!

只需用 isset测试它,例如
if (!empty($aka)) {
        foreach ($aka as $ak) {
                if(isset($ak["lang"]) && ($ak["lang"]=="es")) {
                        $sptitle=$ak["title"];
                }
        }
}

如果你不知道布尔运算符如何&&可以短路,如果第一个操作数为假,则不会评估第二个操作数.在第二个操作数中对它进行操作之前,你会经常看到这个习惯用于检查某些东西的可用性.

您也可以使用@L_126_5@(‘lang’,$aka)而不是isset,但它的语义略有不同 – 如果元素设置为null,则返回true,其中isset将返回false.

有趣的是,isset is at least twice as fast as array_key_exists,可能是因为它是一种语言结构而不是常规的函数调用.

脚本宝典总结

以上是脚本宝典为你收集整理的PHP注意:循环数组时未定义的索引全部内容,希望文章能够帮你解决PHP注意:循环数组时未定义的索引所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。