Получить ключ от многомерного массива?

Например, у меня есть многомерный массив, как показано ниже:

$array = array ( 0 => array ( 'id' => '9', 'gallery_id' => '2', 'picture' => '56475832.jpg' ), 1 => array ( 'id' => '8', 'gallery_id' => '2', 'picture' => '20083622.jpg' ), 2 => array ( 'id' => '7', 'gallery_id' => '2', 'picture' => '89001465.jpg' ), 3 => array ( 'id' => '6', 'gallery_id' => '2', 'picture' => '47360232.jpg' ), 4 => array ( 'id' => '5', 'gallery_id' => '2', 'picture' => '4876713.jpg' ), 5 => array ( 'id' => '4', 'gallery_id' => '2', 'picture' => '5447392.jpg' ), 6 => array ( 'id' => '3', 'gallery_id' => '2', 'picture' => '95117187.jpg' ) ); 

Как я могу получить ключ от array(0,1,2,3,4,5,6) ?

Я пробовал много примеров, но ничего не сработало для меня.

Solutions Collecting From Web of "Получить ключ от многомерного массива?"

Это довольно просто, вам просто нужно использовать 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 если будут использоваться свободные целые сравнения.

Возможно, http://php.net/manual/en/function.array-keys.php ?

Преобразуйте свой двумерный массив самостоятельно:

 $tmp = null foreach($array as $key => $value) { $tmp[] = $key; } print_r($tmp); 

Попытайтесь, я думаю, это вам поможет.

 foreach ($array as $key=>$value) { echo $key.'<br/>'; echo $value['id'].'<br/>'; echo $value['gallery_id'].'<br/>'; echo $value['picture'].'<br/><br/>'; } 

иногда его легко найти;)

 array_keys($array); 

array_keys

Вы имеете в виду что-то вроде этого:

function getKeys($array) { $resultArr = array(); foreach($array as $subArr) { $resultArr = array_merge($resultArr, $subArr); } return array_keys($resultArr); }
function getKeys($array) { $resultArr = array(); foreach($array as $subArr) { $resultArr = array_merge($resultArr, $subArr); } return array_keys($resultArr); }