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

PHP search a 2 dimensional array then display the entire array

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

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

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

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

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

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