2015-02-08 114 views
-2

我有一个问题。我有一些数组,如下面的例子。PHP搜索一个2维数组,然后显示整个数组

$arrays = array(

    array('id' => '1','username' => 'user1','password' => 'pass1','email' => '[email protected]'), 

    array('id' => '2','username' => 'user2','password' => 'pass2','email' => '[email protected]'), 

    array('id' => '3','username' => 'user3','password' => 'pass3','email' => '[email protected]') 
); 

例如,我想要搜索“user2”,然后显示有关user2的所有信息。我怎样才能做到这一点?

+0

我不知道这个函数。我只需要功能的名称,因为我找不到任何东西在谷歌:( – 2015-02-08 14:27:58

+0

http://php.net/manual/en/function.array-search.php应该是一个好的开始。 – 2015-02-08 14:32:41

回答

1

只是遍布顶部阵列($arrays)寻找正确的用户。当你发现它做了一些事情。

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

,如果你想呼应特定的用户名信息=用户2,你可以用这样的print_r或使用前回答:根据您的喜好

0

你可以`

foreach ($arrays as $a) { 
    if ($a['username'] === 'user2') { 

echo 'id:'.$a['id']; 
echo 'user:'.$a['username']; 
echo 'email:'.$a['email']; 

    } 
} 

和格式试试这个方法也是按键值搜索multidimensional数组

$array = array(

    array('id' => '1','username' => 'user1','password' => 'pass1','email' => '[email protected]'), 

    array('id' => '2','username' => 'user2','password' => 'pass2','email' => '[email protected]'), 

    array('id' => '3','username' => 'user3','password' => 'pass3','email' => '[email protected]') 
); 

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>';