2015-02-08 103 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>';