ホームページ  >  記事  >  バックエンド開発  >  PHPでキープレフィックスに基づいて配列をフィルタリングする方法?

PHPでキープレフィックスに基づいて配列をフィルタリングする方法?

DDD
DDDオリジナル
2024-10-29 21:54:29886ブラウズ

How to Filter an Array Based on Key Prefix in PHP?

キー プレフィックスに基づいて配列要素をフィルタリングする

特定のパターンに従うキーを持つ配列が与えられた場合、選択的にのみを保持する必要がある場合があります。特定の基準を満たす要素。この場合、配列をフィルタリングして、キーが「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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。