Saya tahu ini sudah dijawab, tetapi saya menggunakan ini dan menambahkannya sedikit lebih dalam kode saya sehingga Anda tidak hanya mencari dengan uid. Saya hanya ingin membaginya untuk orang lain yang mungkin membutuhkan fungsi itu.
Inilah contoh saya dan harap diingat ini adalah jawaban pertama saya. Saya mengambil array param karena saya hanya perlu mencari satu array spesifik, tetapi Anda dapat dengan mudah menambahkannya. Saya ingin dasarnya mencari lebih dari sekedar uid.
Juga, dalam situasi saya mungkin ada beberapa kunci untuk kembali sebagai hasil pencarian oleh bidang lain yang mungkin tidak unik.
/**
* @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;
}
Kemudian, saya akhirnya menulis ini untuk memungkinkan saya mencari nilai lain dan kunci asosiatif. Jadi contoh pertama saya memungkinkan Anda untuk mencari nilai dalam kunci asosiatif tertentu, dan mengembalikan semua kecocokan.
Contoh kedua ini menunjukkan kepada Anda di mana nilai ('Taylor') ditemukan di kunci asosiatif tertentu (nama depan) DAN nilai lain (benar) ditemukan di kunci asosiatif lain (dipekerjakan), dan mengembalikan semua kecocokan (Kunci di mana orang dengan nama depan 'Taylor' DAN dipekerjakan).
/**
* @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;
}
Penggunaan fungsi
$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);
Hasil
Array ( [0] => 2 )