So che è già stata data una risposta, ma l'ho usato e l'ho esteso un po 'di più nel mio codice in modo che tu non avessi cercato solo dall'UID. Voglio solo condividerlo per chiunque altro abbia bisogno di tale funzionalità.
Ecco il mio esempio e tieni a mente che questa è la mia prima risposta. Ho eliminato l'array param perché avevo solo bisogno di cercare un array specifico, ma potevi facilmente aggiungerlo. Volevo essenzialmente cercare più di un semplice uid.
Inoltre, nella mia situazione potrebbero esserci più chiavi da restituire a seguito della ricerca in altri campi che potrebbero non essere univoche.
/**
* @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;
}
Più tardi, ho finito per scrivere questo per permettermi di cercare un altro valore e chiave associativa. Quindi il mio primo esempio ti consente di cercare un valore in qualsiasi chiave associativa specifica e restituire tutte le corrispondenze.
Questo secondo esempio mostra dove si trova un valore ("Taylor") in una determinata chiave associativa (first_name) E un altro valore (true) viene trovato in un'altra chiave associativa (utilizzata) e restituisce tutte le corrispondenze (chiavi in cui le persone con nome 'Taylor' AND sono impiegati).
/**
* @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;
}
Uso della funzione
$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);
Risultato
Array ( [0] => 2 )