我知道这个问题已经有答案了,但我在我的代码中使用了它并进行了一些扩展,这样你就不必仅通过uid搜索。我想为任何可能需要该功能的人分享它。
以下是我的示例,请注意这是我的第一个答案。我去掉了参数数组,因为我只需要搜索一个特定的数组,但你可以很容易地添加它。我想要搜索的内容不仅仅是uid。
此外,在我的情况下,有可能根据其他字段进行搜索并返回多个键作为结果,这些键可能不是唯一的。
function search_revisions($dataArray, $search_value, $key_to_search) {
$keys = array();
foreach ($dataArray as $key => $cur_value) {
if ($cur_value[$key_to_search] == $search_value) {
$keys[] = $key;
}
}
return $keys;
}
后来,我写了这个程序,让我能够搜索另一个值和关联键。因此,我的第一个例子允许您在任何特定的关联键中搜索值,并返回所有匹配项。
这个第二个例子向您展示了如何在特定的关联键(first_name)中找到一个值(“Taylor”)
并且在另一个关联键(employed)中找到另一个值(true),并返回所有匹配项(名字为'Taylor'且已雇用的人的键)。
function search_revisions($dataArray, $search_value, $key_to_search, $other_matching_value = null, $other_matching_key = null) {
$keys = array();
foreach ($dataArray as $key => $cur_value) {
if ($cur_value[$key_to_search] == $search_value) {
if (isset($other_matching_key) && isset($other_matching_value)) {
if ($cur_value[$other_matching_key] == $other_matching_value) {
$keys[] = $key;
}
} else {
$keys[] = $key;
}
}
}
return $keys;
}
函数的使用
$data = array(
array(
'cust_group' => 6,
'price' => 13.21,
'price_qty' => 5
),
array(
'cust_group' => 8,
'price' => 15.25,
'price_qty' => 4
),
array(
'cust_group' => 8,
'price' => 12.75,
'price_qty' => 10
)
);
$findKey = search_revisions($data,'8', 'cust_group', '10', 'price_qty');
print_r($findKey);
结果
Array ( [0] => 2 )