2016-04-13 10 views
1

phpの言語では、次のスニペットとして便利なことはありますか?

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

3本のラインがかわいいです*と思います。 – Rizier123

+0

[すべての配列要素を削除しますか?](http://stackoverflow.com/questions/10122801/remove-all-array-elements-except-what-i-want) –

答えて

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

http://php.net/array_intersect_keyを参照してください。

+0

ah ....私のコード例で重要な機能を見逃しています...これがまだ当てはまる場合はアドバイスをお願いしますか? –

+0

デフォルト値(ここでは 'null')を持つ同じフィールドをデータに追加するだけです。サンプルを更新しました。 – deceze

+0

私はこの方法を試しましたが、実行時間は約3倍、製品はほぼ同じ結果になります。ありがとうございました。 –

関連する問題