PHP搜索二维数组然后显示整个数组

时间:2015-02-08 14:23:47

标签: php arrays search

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

$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的所有信息。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

只需遍历顶部数组($arrays),寻找正确的用户。当你发现它做了一些事情。

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

答案 1 :(得分:0)

如果你想回显特定用户名= user2的信息,你可以像print_r之前的那样使用或者使用:`

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

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

    }
} 

并根据您的喜好进行格式化

答案 2 :(得分:0)

您也可以尝试这种方式按键值

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