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>';
我有一个问题。我有一些数组,如下例所示。
$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>';