Tôi biết điều này đã được trả lời, nhưng tôi đã sử dụng nó và mở rộng thêm một chút trong mã của tôi để bạn không phải tìm kiếm chỉ bằng uid. Tôi chỉ muốn chia sẻ nó cho bất cứ ai khác có thể cần chức năng đó.
Đây là ví dụ của tôi và xin hãy nhớ rằng đây là câu trả lời đầu tiên của tôi. Tôi lấy ra mảng param vì tôi chỉ cần tìm kiếm một mảng cụ thể, nhưng bạn có thể dễ dàng thêm nó vào. Tôi muốn tìm kiếm về cơ bản không chỉ là uid.
Ngoài ra, trong tình huống của tôi, có thể có nhiều khóa để trả về do kết quả tìm kiếm của các trường khác có thể không phải là duy nhất.
/**
* @param array multidimensional
* @param string value to search for, ie a specific field name like name_first
* @param string associative key to find it in, ie field_name
*
* @return array keys.
*/
function search_revisions($dataArray, $search_value, $key_to_search) {
// This function will search the revisions for a certain value
// related to the associative key you are looking for.
$keys = array();
foreach ($dataArray as $key => $cur_value) {
if ($cur_value[$key_to_search] == $search_value) {
$keys[] = $key;
}
}
return $keys;
}
Sau đó, tôi đã kết thúc việc viết này để cho phép tôi tìm kiếm một giá trị khác và khóa kết hợp. Vì vậy, ví dụ đầu tiên của tôi cho phép bạn tìm kiếm một giá trị trong bất kỳ khóa kết hợp cụ thể nào và trả về tất cả các kết quả khớp.
Ví dụ thứ hai này cho bạn thấy nơi tìm thấy một giá trị ('Taylor') trong một khóa kết hợp nhất định (First_name) VÀ một giá trị khác (true) được tìm thấy trong một khóa kết hợp khác (được sử dụng) và trả về tất cả các kết quả khớp (Khóa nơi mọi người có tên 'Taylor' VÀ được tuyển dụng).
/**
* @param array multidimensional
* @param string $search_value The value to search for, ie a specific 'Taylor'
* @param string $key_to_search The associative key to find it in, ie first_name
* @param string $other_matching_key The associative key to find in the matches for employed
* @param string $other_matching_value The value to find in that matching associative key, ie true
*
* @return array keys, ie all the people with the first name 'Taylor' that are employed.
*/
function search_revisions($dataArray, $search_value, $key_to_search, $other_matching_value = null, $other_matching_key = null) {
// This function will search the revisions for a certain value
// related to the associative key you are looking for.
$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 {
// I must keep in mind that some searches may have multiple
// matches and others would not, so leave it open with no continues.
$keys[] = $key;
}
}
}
return $keys;
}
Sử dụng chức năng
$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);
Kết quả
Array ( [0] => 2 )