Как найти первый / второй элемент ассоциативного массива, когда ключи неизвестны?

В PHP, когда у вас есть ассоциативный массив, например:

$groups['paragraph'] = 3 $groups['line'] = 3 

Каков синтаксис доступа к первому или второму элементу массива, когда вы не знаете значения ключей ?

Есть ли что-то вроде в инструкции C # LINQ, где вы можете сказать:

 $mostFrequentGroup = $groups->first()? 

или

 $mostFrequentGroup = $groups->getElementWithIndex(0)? 

Или мне нужно использовать оператор foreach и выбирать их, как в нижней части этого примера кода:

 //should return "paragraph" echo getMostFrequentlyOccurringItem(array('line', 'paragraph', 'paragraph')); //should return "line" echo getMostFrequentlyOccurringItem(array('wholeNumber', 'date', 'date', 'line', 'line', 'line')); //should return null echo getMostFrequentlyOccurringItem(array('wholeNumber', 'wholeNumber', 'paragraph', 'paragraph')); //should return "wholeNumber" echo getMostFrequentlyOccurringItem(array('wholeNumber', '', '', '')); function getMostFrequentlyOccurringItem($items) { //catch invalid entry if($items == null) { return null; } if(count($items) == 0) { return null; } //sort $groups = array_count_values($items); arsort($groups); //if there was a tie, then return null if($groups[0] == $groups[1]) { //******** HOW TO DO THIS? *********** return null; } //get most frequent $mostFrequentGroup = ''; foreach($groups as $group => $numberOfTimesOccurrred) { if(trim($group) != '') { $mostFrequentGroup = $group; break; } } return $mostFrequentGroup; } 

используйте эти функции для установки указателя внутреннего массива:

http://ch.php.net/manual/en/function.reset.php

http://ch.php.net/manual/en/function.end.php

И этот, чтобы получить фактический элемент: http://ch.php.net/manual/en/function.current.php

 reset($groups); echo current($groups); //the first one end($groups); echo current($groups); //the last one 

Если вы хотите иметь последний / первый ключ, просто сделайте что-то вроде $tmp = array_keys($groups); ,

 $array = array('Alpha' => 1.1,'Bravo' => 2.2,'Charlie' => 3.3,'Delta' => 4.4,'Echo' =>5.5, 'Golf' => 6.6); $pos = 3; function getAtPos($tmpArray,$pos) { return array_splice($tmpArray,$pos-1,1); } $return = getAtPos($array,$pos); var_dump($return); 

ИЛИ

 $array = array('Alpha' => 1.1,'Bravo' => 2.2,'Charlie' => 3.3,'Delta' => 4.4,'Echo' =>5.5, 'Golf' => 6.6); $pos = 3; function getAtPos($tmpArray,$pos) { $keys = array_keys($tmpArray); return array($keys[$pos-1] => $tmpArray[$keys[$pos-1]]); } $return = getAtPos($array,$pos); var_dump($return); 

РЕДАКТИРОВАТЬ

Предполагает $ pos = 1 для первого элемента, но легко изменить для $ pos = 0, изменив ссылки $ pos-1 в функциях на $ pos