2017-06-19 3 views
-1

Ich möchte alle Elemente eines assoziativen Arrays entfernen, wenn der Schlüssel eine Teilfolge von 'TB1' im Schlüssel hat.Entfernen Sie alle Elemente eines assoziativen Arrays, wenn sie ein bestimmtes Wort im Schlüssel haben

Mein Array wie folgt aussieht:

$output= [ 
     'TB1_course' => 'required' 
     'TB1_session' => 'required' 
     'TB2_course' => 'required' 
    ] 

Ich mag würde TB1_course und TB1_session entfernen, so dass meine letzte Array wie folgt aussieht:

$output =[ 
    'TB2_course' => 'required 
] 

Gibt es eine Möglichkeit über das tun dies in zu gehen, eine einfache prägnante Mode?

war meine erste Schätzung eine für jede Schleife zu verwenden:

foreach ($output as $key =>$value){ 
//remove 
} 

Vielen Dank für die Hilfe!

+0

Es wird erwartet, dass Sie versuchen, ** den Code selbst zu schreiben **. Nach [** mehr Forschung **] (https://meta.stackoverflow.com/q/261592/1011527) Wenn Sie ein Problem haben ** posten Sie, was Sie versucht haben ** mit einer ** klaren Erklärung von was funktioniert nicht ** und bietet [ein minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve). Lesen Sie [Wie Sie fragen] (http://stackoverflow.com/help/how-to-ask) eine gute Frage. Achten Sie darauf, [die Tour zu besuchen] (http://stackoverflow.com/tour) und lesen [this] (https://meta.stackoverflow.com/q/347937/1011527). –

+0

ist das ok 'unset ($ output [' TB1_course ']); unset ($ output ['TB1_session']); ' –

Antwort

1

Filter das Array von Schlüssel:

$input = [ 
    'TB1_course' => 'required', 
    'TB1_session' => 'required', 
    'TB2_course' => 'required', 
]; 

$filter = function ($key) { 
    return substr($key, 0, 4) === 'TB2_'; 
}; 

$output = array_filter($input, $filter, ARRAY_FILTER_USE_KEY); 

var_dump($output); 

Output:

array(1) { 
    'TB2_course' => 
    string(8) "required" 
} 

Siehe http://php.net/array_filter zur Dokumentation der array_filter Funktion, die nützlich ist Arrays zu filtern.

+0

Es funktioniert perfekt, Danke! – Muhammad

Verwandte Themen