【问题标题】:PHP search a 2 dimensional array then display the entire array [closed]PHP搜索二维数组然后显示整个数组[关闭]
【发布时间】:2015-02-08 14:23:46
【问题描述】:

我有一个问题。我有一些数组,如下例所示。

$arrays = array(

  array('id' => '1','username' => 'user1','password' => 'pass1','email' => 'your@email.com'),

  array('id' => '2','username' => 'user2','password' => 'pass2','email' => 'your@email.com'),

  array('id' => '3','username' => 'user3','password' => 'pass3','email' => 'your@email.com')
);

例如,我想搜索“user2”,然后显示有关 user2 的所有信息。我该怎么做?

【问题讨论】:

标签: php arrays search


【解决方案1】:

只需遍历顶部数组 ($arrays) 即可查找正确的用户。当你找到它时,用它做点什么。

foreach ($arrays as $a) {
    if (isset($a['username']) && $a['username'] === 'user2') {
        echo '<pre>';
        print_r($a); 
        echo '</pre>';
    }
}

【讨论】:

    【解决方案2】:

    如果您想回显特定 username=user2 的信息,您可以使用 print_r 之前的答案或使用:`

    foreach ($arrays as $a) {
        if ($a['username'] === 'user2') {
    
    echo 'id:'.$a['id'];
     echo 'user:'.$a['username'];
     echo 'email:'.$a['email'];
    
        }
    } 
    

    你喜欢的格式

    【讨论】:

      【解决方案3】:

      您也可以尝试这种方式通过键值搜索multidimensional数组

      $array = array(
      
          array('id' => '1','username' => 'user1','password' => 'pass1','email' => 'your@email.com'),
      
          array('id' => '2','username' => 'user2','password' => 'pass2','email' => 'your@email.com'),
      
          array('id' => '3','username' => 'user3','password' => 'pass3','email' => 'your@email.com')
      );
      
      function search_by_key_value($array, $key, $value)
      {
          $results = array();
      
          if (is_array($array)) {
              if (isset($array[$key]) && $array[$key] == $value) {
                  $results[] = $array;
              }
      
              foreach ($array as $subarray) {
                  $results = array_merge($results, search_by_key_value($subarray, $key, $value));
              }
          }
      
          return $results;
      }
      
      $result=search_by_key_value($array,'username','user2'); //array,key,value
      
      echo '<pre>';
      print_r($result);
      echo '</pre>';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-06
        • 1970-01-01
        • 2013-08-12
        • 2020-12-22
        • 1970-01-01
        • 2014-08-12
        • 1970-01-01
        • 2014-06-26
        相关资源
        最近更新 更多