2016-04-13 3 views
1

In php Sprache, haben wir etwas Praktisches zu tun Aufgabe als das folgende Snippet?

$acceptableInputs = []; 
foreach ($this->fields as $field) { 
    $value = array_key_exists($field, $formInputs) 
     ? $formInputs[$field] 
     : ''; 
    $acceptableInputs[$field] = $value; 
} 
+1

3 Zeilen sind ziemlich * praktisch * denke ich. – Rizier123

+0

Mögliche Duplikate von [Entfernen Sie alle Array-Elemente außer was ich will?] (Http://stackoverflow.com/questions/10122801/remove-all-array-elements-except-what-i-want) –

Antwort

2
$acceptableInputs = array_intersect_key($formInputs, array_flip($this->fields)) + 
        array_fill_keys($this->fields, null); 

http://php.net/array_intersect_key See.

+0

ah .... Ich sehe, dass ich ein wichtiges Feature in meinem Codebeispiel verpasst habe ... Könnten Sie mir bitte mitteilen, ob dies noch immer zutrifft? –

+0

Fügen Sie den Daten dieselben Felder mit Standardwerten (hier: 'null') hinzu. Aktualisiertes Beispiel – deceze

+0

Ich habe diese Methode ausprobiert und es ist etwa dreimal schneller in der Ausführungszeit und Produkt fast das gleiche Ergebnis. Vielen Dank. –

Verwandte Themen