【问题标题】:array_search for multidimensional array with two attributes [duplicate]array_search 具有两个属性的多维数组[重复]
【发布时间】:2020-04-14 08:09:59
【问题描述】:

假设我们有以下二维数组:

$userdb = array(
    array(
        'uid' => '100',
        'name' => 'Sandra Shush',
        'pic_square' => 'urlof100'
    ),
    array(
        'uid' => '5465',
        'name' => 'Stefanie Mcmohn',
        'pic_square' => 'urlof100'
    ),
    array(
        'uid' => '40489',
        'name' => 'Michael',
        'pic_square' => 'urlof40489'
    )
);

如果我想搜索一个我可以使用的键(在这个例子中得到 0):

$key = array_search('100', array_column($userdb, 'uid'));

但是,如果我想获取应该匹配特定值的两个属性的键,我应该使用什么。就像我想搜索具有 uid = '100' AND name = 'Sandra Shush' 的键?

【问题讨论】:

    标签: php arrays search


    【解决方案1】:

    为什么不遍历数组?

    $foundKey = false;
    foreach($userdb as $key => $user){
       if($user['uid']=='100' && $user['name '] == 'Sandra Shush'){
            $foundKey = $key;
       }
    }
    

    【讨论】:

      【解决方案2】:

      在值上使用foreach 可能是最简单的,例如此函数将返回与array_search 相似的值:

      function find_user($userdb, $attributes) {
          foreach ($userdb as $key => $user) {
              if (empty(array_diff($attributes, $user))) return $key;
          }
          return false;
      }
      
      echo find_user($userdb, array('name' => 'Stefanie Mcmohn', 'uid' => 5465));
      

      输出

      1
      

      Demo on 3v4l.org

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-03-08
        • 1970-01-01
        • 2011-12-03
        • 2016-05-22
        • 2014-02-10
        • 1970-01-01
        • 1970-01-01
        • 2019-03-20
        相关资源
        最近更新 更多