Ответ 1
Это довольно просто, вам просто нужно использовать array_keys()
:
$keys = array_keys($array);
EDIT. Для вашей задачи поиска эта функция должна выполнять следующее задание:
function array_search_inner ($array, $attr, $val, $strict = FALSE) {
// Error is input array is not an array
if (!is_array($array)) return FALSE;
// Loop the array
foreach ($array as $key => $inner) {
// Error if inner item is not an array (you may want to remove this line)
if (!is_array($inner)) return FALSE;
// Skip entries where search key is not present
if (!isset($inner[$attr])) continue;
if ($strict) {
// Strict typing
if ($inner[$attr] === $val) return $key;
} else {
// Loose typing
if ($inner[$attr] == $val) return $key;
}
}
// We didn't find it
return NULL;
}
// Example usage
$key = array_search_inner($array, 'id', 9);
Четвертый параметр $strict
, если TRUE
, будет использовать строгое сравнение типов. Так что 9
не будет работать, вам нужно будет пройти '9'
, поскольку значения сохраняются как строки. Возвращает ключ первого совпадения соответствия, NULL
, если значение не найдено, или FALSE
при ошибке. убедитесь, что вы используете строгое сравнение с возвращаемым значением, так как 0
, NULL
и FALSE
- все возможные возвращаемые значения, и все они будут оцениваться с помощью 0
, если используются свободные целые сравнения.