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

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

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

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

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

$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;
}
6
задан Edward Tanguay 29 October 2010 в 07:35
поделиться