0

アプリに必要な値の配列があります。値が提供されていない場合は、デフォルト値を入力したいと思います。たとえば、アプリで 3 つの値が必要な場合

$default_vals = array('foo','bar','baz');
$given_vals = array('faz',NULL);

結果が必要です:

$combined = array('faz','bar','baz')

基本的に、デフォルトのもので欠落している配列インデックスを埋めます。

ほぼ 5:00 で、脳みそが揚げられています。これは、array_intersect() や merge() のような array_function() で簡単に実行できると思いました。

ありがとう。

編集:ちなみに.. $given_vals には $default と同じ値が含まれている可能性があるため、その場合でもソリューションは機能するはずです。

4

1 に答える 1

4

最初に s を入力から除外する必要がありNULLます。次に、いわゆる配列結合を行うことができます (配列結合演算子は です。配列演算子のドキュメント+を参照してください)。

$result = array_filter($given_vals) + $default_vals;

array_filterDocsFALSEがまたは空の文字列のような値も削除することに注意してください。したがって、それがあなたのニーズに合っているかどうかは 100% わかりません。そうでない場合は、より具体的にしてください。

$result = array_filter($given_vals, function($v) {return !is_null($v);}) 
          + $default_vals;
ksort($result);
于 2012-08-07T22:54:20.320 に答える