假设我们有以下二维数组:
$userdb = array(
array(
'uid' => '100',
'name' => 'Sandra Shush',
'pic_square' => 'urlof100'
),
array(
'uid' => '5465',
'name' => 'Stefanie Mcmohn',
'pic_square' => 'urlof100'
),
array(
'uid' => '40489',
'name' => 'Michael',
'pic_square' => 'urlof40489'
)
);
如果我想搜索可以使用的键(在此示例中为0):
$key = array_search('100', array_column($userdb, 'uid'));
但是如果我想获取应该与特定值匹配的两个属性的密钥,该怎么办?就像我要搜索具有uid = '100'
AND name = 'Sandra Shush'
?
[例如,仅在值上使用foreach
可能是最简单的此函数将返回与array_search
类似的值:
function find_user($userdb, $attributes) {
foreach ($userdb as $key => $user) {
if (empty(array_diff($attributes, $user))) return $key;
}
return false;
}
echo find_user($userdb, array('name' => 'Stefanie Mcmohn', 'uid' => 5465));
输出
1
为什么不遍历数组?
$foundKey = false;
foreach($userdb as $key => $user){
if($user['uid']=='100' && $user['name '] == 'Sandra Shush'){
$foundKey = $key;
}
}