2016-04-13 10 views
1

php dilinde, aşağıdaki pasaj olarak görev yapmak için kullanışlı bir şeyimiz var mı?

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

3 satır oldukça güzel * kullanışlı * Bence. – Rizier123

+0

Olası yinelenen [İstediklerim dışındaki tüm dizi öğelerini kaldır?] (Http://stackoverflow.com/questions/10122801/remove-all-array-elements-except-what-i-want) –

cevap

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

http://php.net/array_intersect_key bakınız.

+0

ah .... Anladığım kadarıyla benim kod örneğimde önemli bir özelliği kaçırdım ... eğer hala uygunsa tavsiye edebilir misiniz? –

+0

Sadece aynı alanları varsayılan değerlerle (burada: null) veriye ekleyin. Güncellenen örnek. – deceze

+0

Bu yöntemi denedim ve yürütme süresinde üç kat daha hızlı ve ürün neredeyse aynı sonuç. Teşekkür ederim. –

İlgili konular