Welcher Wert im Array hat die 1

ThiKool

Erfahrenes Mitglied
Hi Community,

ich komm mal wieder nicht weiter. Ich hab folgenden Array:

PHP:
$bodyparts = array(schulter=>0,kopf=>0,fuss=>1,knie=>1);

Jetzt suche ich nach einer Möglichkeit zu erfahren welcher Wert die 1 hat. Als Ergebnis sollte mir dann angezeigt werden, dass Wert Fuss und Wert Knie die 1 haben.


Danke schonmal :)
 
Zuletzt bearbeitet von einem Moderator:
array_search()

Oder wenn es alle Keys sein sollen:

PHP:
<?php
function array_search_all($array, $value, $strict = false)
{
   $results = array();
   foreach($array as $akey => $avalue)
   {
     if($strict)
     {
       if($value === $avalue)
       {
         $results[] = $akey;
       }
       else if($value == $avalue)
       {
         $results[] = $akey;
       }
     }
   }
   
   if(count($results) == 1)
   {
     return $results[0];
   }
   if(count($results) == 0)
   {
     return false;
   }
   
   return $results;
}

$bodyparts = array('schulter'=>0,'kopf'=>0,'fuss'=>1,'knie'=>1);

$findings = array_search_all($bodyparts, 1, true);

var_dump($findings);
 
Zuletzt bearbeitet:
Saftmeisters Signatur hat gesagt.:
- Don't reinvent the wheel! It's perfect as it is!
@saftmeister Welch eine Ironie :)

In der Dokumentation von array_search() steht:
php.net hat gesagt.:
If needle is found in haystack more than once, the first matching key is returned. To return the keys for all matching values, use array_keys() with the optional search_value parameter instead.

Also ist die Lösung:
PHP:
// Der letzte Parameter $strict = true ist optional, aber zu empfehlen
$hits = array_keys($bodyparts, 1, true);
 
Und wieder eine Funktion im Core, die überflüssig ist (array_search).

EDIT: Und meine Funktion enthält sogar noch Fehler.... tststs.
 
Zurück