ホームページ >バックエンド開発 >PHPの問題 >PHPを使用して配列キーを除外する方法

PHPを使用して配列キーを除外する方法

PHPz
PHPzオリジナル
2023-04-24 14:53:18573ブラウズ

PHP プログラミングでは、配列は非常に一般的なデータ型であり、多くの場合、配列を操作する必要があります。ただし、場合によっては、特定のキーを配列から除外し、他のキーを保持する必要がある場合があります。この記事では、PHPを使用して配列キーを除外する方法を説明します。

1. unset 関数を使用する

unset 関数では、キーと値のペアを削除できます。キーがパラメータとして unset 関数に渡されると、キーは削除されます。

以下は、unset 関数を使用して配列キーを除外する例です:

$my_array = array(
    'foo' => 'bar',
    'john' => 'doe',
    'mary' => 'jane'
);

unset($my_array['foo']);

print_r($my_array); // Array ( [john] => doe [mary] => jane )

上の例では、配列 $my_array 内のキー 'foo' が unset 関数によって削除されます。出力された配列には「foo」キーの値がないことがわかります。

したがって、unset 関数を使用して、配列内の除外するすべてのキーをループすることで、それらを 1 つずつ削除できます。

以下は、unset 関数を使用して複数の配列キーを除外する例です:

$my_array = array(
    'foo' => 'bar',
    'john' => 'doe',
    'mary' => 'jane',
    'jane' => 'smith'
);

$exclude_keys = array('foo', 'mary');

foreach ($exclude_keys as $key) {
    unset($my_array[$key]);
}

print_r($my_array); // Array ( [john] => doe [jane] => smith )

上の例では、除外するキー配列 $exclude_keys を走査するために foreach ループが使用されています。その後、unset 関数が使用され、それらは配列から順番に削除されます。

2. array_diff_key 関数を使用する

PHP には、2 つの配列のキーを比較して差分を返すために使用できる、非常に便利な関数 array_diff_key が用意されています。

次は、array_diff_key 関数を使用して複数の配列キーを除外する例です。

$my_array = array(
    'foo' => 'bar',
    'john' => 'doe',
    'mary' => 'jane',
    'jane' => 'smith'
);

$exclude_keys = array('foo', 'mary');

$filtered_array = array_diff_key($my_array, array_combine($exclude_keys, array_fill(0, count($exclude_keys), null)));

print_r($filtered_array); // Array ( [john] => doe [jane] => smith )

上の例では、array_combine 関数と array_fill 関数を使用して、すべての配列キーを含む等しい長さの配列を生成します。 null 値. を返し、array_diff_key 関数を使用して、$my_array と、キーがすべて空である配列、つまり $exclude_keys 配列内のすべてのキーが除外されている配列との差を返します。

3. array_filter 関数を使用する

PHP では、array_filter 関数を使用して配列をフィルターし、対応する配列要素を返します。コールバック関数が提供されるため、特定のキーを除外する必要があるかどうかを判断するコールバック関数を作成できます。

次は、array_filter 関数を使用して複数の配列キーを除外する例です:

$my_array = array(
    'foo' => 'bar',
    'john' => 'doe',
    'mary' => 'jane',
    'jane' => 'smith'
);

$exclude_keys = array('foo', 'mary');

$filtered_array = array_filter($my_array, function($key) use ($exclude_keys) {
    return !in_array($key, $exclude_keys);
}, ARRAY_FILTER_USE_KEY);

print_r($filtered_array); // Array ( [john] => doe [jane] => smith )

上の例では、匿名関数を定義し、use キーワードを使用して $exclude_keys 配列を渡します。それに。この無名関数の機能は、配列キーが $exclude_keys 配列に存在する場合、フィルターで除外する必要があることを示す false を返すことです。最後に、この匿名関数をコールバック関数として array_filter 関数に渡します。 array_filter 関数を使用する場合、3 番目のパラメーターを ARRAY_FILTER_USE_KEY として指定し、コールバック関数を使用して配列のキーをフィルター処理することを示します。

4. array_keys 関数と array_diff 関数を使用する

最後に、array_keys 関数と array_diff 関数を使用して配列キーを除外することもできます。具体的な方法は、まず array_keys 関数を使用して配列のすべてのキーを取得し、次に array_diff 関数を使用して保持する必要があるキーを取得し、これらのキーを使用して新しい配列を構築します。

次は、array_keys 関数と array_diff 関数を使用して複数の配列キーを除外する例です。

$my_array = array(
    'foo' => 'bar',
    'john' => 'doe',
    'mary' => 'jane',
    'jane' => 'smith'
);

$exclude_keys = array('foo', 'mary');

$filtered_keys = array_diff(array_keys($my_array), $exclude_keys);

$filtered_array = array_intersect_key($my_array, array_combine($filtered_keys, $filtered_keys));

print_r($filtered_array); // Array ( [john] => doe [jane] => smith )

上の例では、まず array_keys 関数を使用して $my_array のすべてのキーを取得し、次に、array_diff 関数を使用して、保持する必要があるキーをフィルターで除外します。次に、array_combine 関数を使用してフィルタリングされたキーを同じキー値を持つ配列に形成し、最後に array_intersect_key 関数を使用してフィルタリングされた配列を返します。

概要

PHP には、配列キーを除外するための複数のメソッドが用意されており、さまざまな実際の状況に対処するためにさまざまなメソッドの使用を選択できます。具体的には、unset 関数、array_diff_key 関数、array_filter 関数、array_keys 関数、および array_diff 関数を使用して、この操作を完了できます。これらのメソッドを使用するときは、不要なキーを誤って削除したり保持したりしないように、配列キーを慎重に扱う必要があることに注意することが重要です。

以上がPHPを使用して配列キーを除外する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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