ホームページ >バックエンド開発 >PHPチュートリアル >PHPでキープレフィックスで配列要素をフィルタリングする方法?
キー プレフィックスによる配列要素のフィルタリング
キーと値を含む配列が与えられた場合、キーが次で始まらないすべての要素を削除するにはどうすればよいですか?特定の文字列?たとえば、次の配列があるとします:
<code class="php">array( 'abc' => 0, 'foo-bcd' => 1, 'foo-def' => 1, 'foo-xyz' => 0, // ... )</code>
目標は、「foo-」で始まるキーを持つ要素のみを保持することです。
関数的アプローチ:
array_filter 関数を使用すると、配列をフィルタリングして必要な要素のみを保持できます:
<code class="php">$array = array_filter($array, function($key) { return strpos($key, 'foo-') === 0; }, ARRAY_FILTER_USE_KEY);</code>
手続き型アプローチ:
または、手続き型アプローチは使用できます:
<code class="php">$only_foo = array(); foreach ($array as $key => $value) { if (strpos($key, 'foo-') === 0) { $only_foo[$key] = $value; } }</code>
オブジェクトを使用した手続き型アプローチ:
反復子を使用して、配列をフィルターすることもできます:
<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 サイトの他の関連記事を参照してください。