duanchi5078 2015-11-25 19:21
浏览 13
已采纳

在php数组中进行简单的键搜索

I have a simple multidimensional array, like so:

$arr1 = array(3,5,array(4,"foo", array("bar","qux"=>"id")));

Then the recursive function,

function getVal($arr){
    foreach($arr as $key=>$val){
      if($key=="qux"){
        echo $val."<br>";
      }elseif(is_array($val)){
        getVal($val);
      }
    }
}

Then finally, calling the function for the first time

getVal($arr1);

However, it outputs

3
4
bar
id

As opposed to only "id". Where did I go wrong?

  • 写回答

2条回答 默认 最新

  • dou12352 2015-11-25 19:23
    关注

    Some of your keys are numbers, which means you're doing 0 == 'qux', which in PHP-land evaluates to true (qux gets converted to integer 0, and obviously 0==0 is true). You need to use ===, which compares value AND type.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了