나는 이것이 이미 답변되었다는 것을 알고 있지만, 이것을 사용하고 코드에서 조금 더 확장하여 uid로만 검색하지 않았습니다. 해당 기능이 필요한 다른 사람과 공유하고 싶습니다.
여기 내 예가 있으며 이것이 첫 번째 대답이라는 것을 명심하십시오. 하나의 특정 배열 만 검색하면 되었기 때문에 param 배열을 가져 왔지만 쉽게 추가 할 수있었습니다. 본질적으로 uid 이상으로 검색하고 싶었습니다.
또한 내 상황에서는 고유하지 않을 수있는 다른 필드로 검색 한 결과 반환 할 여러 키가있을 수 있습니다.
/**
* @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;
}
나중에 다른 값과 연관 키를 검색 할 수 있도록 이것을 작성했습니다. 따라서 첫 번째 예에서는 특정 연관 키에서 값을 검색하고 모든 일치 항목을 반환 할 수 있습니다.
값 ( '테일러') 어떤 연관 키 (FIRST_NAME)에서 발견되는이 두 번째 예를 보여줍니다 당신 과 다른 값 (사실은) 다른 연관 키 (고용)에서 발견하고, 모든 일치 (키 반환되는 경우 이름을 가진 사람 '테일러'가 사용됩니다).
/**
* @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;
}
기능 사용
$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 )