キー プレフィックスに基づいて配列要素をフィルタリングする
特定のパターンに従うキーを持つ配列が与えられた場合、選択的にのみを保持する必要がある場合があります。特定の基準を満たす要素。この場合、配列をフィルタリングして、キーが「foo-」などの特定の文字列で始まる要素のみを保持することを目的としています。
関数的アプローチ
関数的アプローチを使用してこれを実現するには、1 つのオプションとして、array_filter() 関数をカスタム コールバックと組み合わせて使用します。コールバック関数は各キーを調べ、それが「foo-」で始まる場合は true を返します。次に、 array_filter() 関数は、この条件に基づいて配列をフィルタリングし、一致するキーのみを保持します。
<code class="php">$array = array_filter($array, function($key) { return strpos($key, 'foo-') === 0; }, ARRAY_FILTER_USE_KEY);</code>
手続き型アプローチ
手続き型アプローチでは、手動で反復処理を行います。配列。各キーについて、「foo-」で始まるかどうかを確認し、「foo-」で始まる場合は、そのキーと値のペアを新しい配列に追加します。
<code class="php">$only_foo = array(); foreach ($array as $key => $value) { if (strpos($key, 'foo-') === 0) { $only_foo[$key] = $value; } }</code>
オブジェクトを使用した手続き型アプローチ
もう 1 つの手続き型アプローチには、ArrayIterator を使用して配列を反復処理することが含まれます。このアプローチにより、各要素のキーと値の両方にアクセスできるようになります。各キーが「foo-」で始まるかどうかを確認し、一致する要素を新しい配列に追加することで、配列を手動でフィルタリングします。
<code class="php">$i = new ArrayIterator($array); $only_foo = array(); while ($i->valid()) { if (strpos($i->key(), 'foo-') === 0) { $only_foo[$i->key()] = $i->current(); } $i->next(); }</code>
以上がPHPでキープレフィックスに基づいて配列をフィルタリングする方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。