Filter Array


#1
Hi,

ich versuch ein Array nach keys zu filtern wenn ein bestimmtes wort auftaucht:
Aber irgendwie bin ich zu blöd das so hinzubekommen das jedes auftauchen ausgegeben wird.
momentan wird nur immer der erste Key ausgegeben.
Aber eigentlich müsste doch name-173 und nachname-187 ausgegeben werden?

PHP:
           $mailform = array(
               [name-173] => Max,
               [nachname-181] => Muster,
               [email_adress-174] => foo@foobar.de,
               [email_adress_two-182] => bar@foobar.de,
               [message] => sadsaadsdas
           )


            function array_search($array, $keyword) {
                foreach($array as $index => $string) {
                    if (strpos($index, $keyword) !== FALSE){
                        return array($index => $string);
                    }
                }
            }

            $mailform_names = array_search($mailform, 'name');
            foreach($mailform_names as $mailform_name){
                echo $mailform_name . '<br />';
            }
 
Zuletzt bearbeitet:

Sempervivum

Erfahrenes Mitglied
#2
#3
Hi,
ich vergess immer das return das weitere Ausführen des Scripts unterbricht.

Habs jetzt umgeschrieben:

PHP:
$mailform_names = array_filter($mailform, function($key) {
                      return strpos($key, 'name') !== FALSE;
                  }, ARRAY_FILTER_USE_KEY);
Vielen Dank und Grüße