Comment trouver la première/deuxième élément de tableau associatif lorsque les clés sont inconnus?
En PHP quand vous avez un tableau associatif, par exemple:
$groups['paragraph'] = 3
$groups['line'] = 3
quelle est la syntaxe pour accéder à la première ou deuxième élément du tableau lorsque vous ne connaissez pas la valeur de l'clés?
Est là quelque chose comme en C#, LINQ déclaration où vous pouvez dire:
$mostFrequentGroup = $groups->first()?
ou
$mostFrequentGroup = $groups->getElementWithIndex(0)?
Ou dois-je utiliser une instruction foreach et les ramasser comme je le fais au bas de cet exemple de code:
//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;
}
OriginalL'auteur Edward Tanguay | 2010-10-29
Vous devez vous connecter pour publier un commentaire.
utiliser ces fonctions pour définir l'interne pointeur sur le tableau:
http://ch.php.net/manual/en/function.reset.php
http://ch.php.net/manual/en/function.end.php
Et celui-ci pour obtenir les éléments réels:
http://ch.php.net/manual/en/function.current.php
Si vous voulez avoir le dernier/premier clé puis il suffit de faire quelque chose comme
$tmp = array_keys($groups);
.ouais, je cherchais trop loin sur ce sujet.
OriginalL'auteur joni
OU
MODIFIER
Suppose $pos = 1 pour le premier élément, mais facile à changer pour $pos = 0 en changeant l' $pos-1 les références dans les fonctions de $pos
OriginalL'auteur Mark Baker