Filterung eines Arrays

Paula

Erfahrenes Mitglied
Hallo zusammen,

ich habe ein Array und möchte gerne nur bestimmte Schlüssel und Werte daraus auslesen. Mein Array ist beispielhaft wie folgt ausfgebaut:
PHP:
$foo = array( 'a1' => '', 'a2' => 'on', 'foo' => 'bar' => 'a3' => 'bla' );
Ich möchte nun alle Schlüssel und Werte angezeigt bekommen, die folgende Eigenschaften erfüllen:
- der Schlüssel muss mit einem a beginnen
- der Wert darf nicht leer sein

Also in dem Beispiel möchte ich folgendes haben:
'a2' => 'on'
'a3' => 'bla'

Wie krieg ich das in möglichst kurzer Form geregelt. Bisher schwebt mir nur eine umfangreiche Funktion im Kopf, aber es sollte doch auch mit den von PHP aus gegebenen Funktionen möglich sein, oder?
 
Versuchs mal so:
PHP:
$return = array();
foreach($foo as $key=>$value){
	if(strpos($key, "a") == 0 AND $value!="") {
		$return[$key] = $value;
	}               
}
 
Super, vielen Dank. Irgendwie hatte ich das aufwendiger im Kopf. Mit einer kleinen Variation habe ich es wie folgt umgesetzt:
PHP:
$foo = array( 'aa1' => '', 'aa2' => 'on', 'foo' => 'bar', 'aa3' => 'bla' );

foreach( $foo as $key => $value ) {
    if( strpos( $key, 'aa' ) !== false AND !empty( $value ) ) {
        $return[$key] = $value;
    }               
}

echo '<pre>'. print_r( $return ) .'</pre>';
 
Wenn du es so machst, dann würde aber auch das (durch)gehen:
PHP:
$foo = array("baraa"=>"test", ...);
Also auch wenn aa nicht am Anfang steht
 
Zurück