ホームページ > バックエンド開発 > PHPの問題 > PHPで2次元配列の部分配列を削除する方法

PHPで2次元配列の部分配列を削除する方法

PHPz
リリース: 2023-04-23 17:55:07
オリジナル
763 人が閲覧しました

PHP プログラミングでは、配列がよく使用されます。配列は、順序付けされた値のコレクションであり、各値には一意のキーがあります。 2 次元配列とは、配列内の値も配列である、つまり、配列内の要素も配列であることを意味します。 2 次元配列を扱う場合、配列内の特定の配列要素を削除する必要があることがよくあります。次に、PHP で 2 次元配列の配列要素を削除する方法を学習しましょう。

  1. 指定したキー名の配列要素を削除します

2 次元配列内の指定したキー名の配列要素を削除するには、unset( ) PHP の関数。この関数は 1 つ以上の変数をパラメータとして受け取り、これらの変数の値をメモリから削除します。配列要素を削除する場合、配列キー名をパラメータとして使用できます。以下に例を示します。

$arr = [
    ['id' => 1,'name' => '张三'],
    ['id' => 2,'name' => '李四'],
    ['id' => 3,'name' => '王五']
];
unset($arr[1]);
ログイン後にコピー

この例では、配列 $arr 内のキー名 1 の配列要素を削除します。 unset($arr[1]) を実行すると、$arr の値は次のようになります。

[
    ['id' => 1,'name' => '张三'],
    ['id' => 3,'name' => '王五']
]
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

unset() 関数を使用して配列内の要素を削除する場合は、次の点に注意する必要があります。

  • 配列要素の削除には戻り値はなく、unset() 関数は対応する変数の値のみを削除します。
  • 複数の配列要素を削除する場合は、unset() 関数ステートメントを使用して複数の変数を削除できます。これにより、プログラムの実行時間とパフォーマンスの消費を削減できます。
  • 配列要素の前のキー名を削除しても、後続のキー名の順序は変更されません。つまり、配列に連続した整数のキー名がいくつかある場合、途中のキー名を削除しても他の要素のキー名は変更されません。
  1. array_splice() 関数を使用して配列要素を削除します。

PHP には、2 次元配列要素を削除するための array_splice() 関数が用意されています。 array_splice() 関数は、配列内の要素を挿入、削除、置換するために使用されます。基本的な構文は次のとおりです:

array_splice(array,start,length,array)
ログイン後にコピー
  • array: required。操作対象の元の配列。
  • 開始: 必須。要素を削除する位置を指定します。
  • 長さ: オプション。削除する要素の数を指定します。省略した場合、開始位置から配列の末尾までのすべての要素が削除されます。
  • 配列: オプション。配列の開始位置に挿入される要素。

例を示します:

$arr = [
    ['id' => 1,'name' => '张三'],
    ['id' => 2,'name' => '李四'],
    ['id' => 3,'name' => '王五']
];
array_splice($arr, 1, 1);
ログイン後にコピー

この例では、配列 $arr 内のインデックス 1 の配列要素を削除します。 array_splice($arr, 1, 1) を実行すると、$arr の値は次のようになります。

[
    ['id' => 1,'name' => '张三'],
    ['id' => 3,'name' => '王五']
]
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

array_splice() 関数を使用して 2 次元配列内の配列要素を削除する場合は、次の点に注意する必要があります。

  • 要素を削除する場合は、削除位置と削除量を指定する必要があります。 length パラメータが渡されない場合、デフォルトでは、指定された位置から配列の末尾までのすべての要素が削除されます。
  • 要素を削除すると、元の配列が変更される可能性があるため、注意して使用してください。削除する要素が存在しない場合、アクションは実行されず、エラーもスローされません。
  • 要素を削除すると、インデックスの順序が変更されます。最初に配列を並べ替えてから削除すると、削除された配列が正しい順序で残っていることを確認できます。
  1. array_diff() 関数を使用して配列要素を削除する

array_diff() 関数は、指定した配列要素を 2 つの形式で削除するために PHP にも提供されています。次元配列。 array_diff() 関数は、2 つ以上の配列間の差異を比較し、2 つの配列間の差異を返すために使用されます。基本的な構文は次のとおりです:

array_diff(array1,array2,array3...)
ログイン後にコピー
  • array1: 必須。比較される最初の配列。
  • 配列2: 必須。比較される 2 番目の配列。
  • array3...: オプション。比較する必要があるその他の配列。

以下は例です:

$arr = [
    ['id' => 1,'name' => '张三'],
    ['id' => 2,'name' => '李四'],
    ['id' => 3,'name' => '王五']
];
$remove = [
    ['id' => 2,'name' => '李四']
];
$result = array_diff($arr, $remove);
ログイン後にコピー

この例では、配列 $arr と $remove 配列内の同じ配列要素を削除し、array_diff($arr, $remove) を実行すると、$result 配列の値は次のようになります。

[
    ['id' => 1,'name' => '张三'],
    ['id' => 3,'name' => '王五']
]
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

array_diff() 関数を使用して 2 次元配列の要素を削除する場合は、次の点に注意する必要があります。

  • array_diff( ) 関数は、2 つの配列の差分の新しい配列を返します。2 つの配列の異なる要素のみが新しい配列に保持され、同一の要素は削除されます。
  • array_diff() 関数は要素を値で比較できず、キー名でのみ一致するため、使用する場合は配列のキー名が正しいことを確認する必要があります。
  • 複数の配列の差分を比較する必要がある場合は、複数の配列を array_diff() 関数に渡し、対応する操作をそれぞれ実行できます。

概要

PHP で 2 次元配列の配列要素を削除するにはさまざまな方法があり、最適なソリューションを選択できます。 unset() 関数、array_splice() 関数、array_diff() 関数を使用して配列要素を削除する場合は、さまざまな関数と演算の違い、配列の演算や順序の変更などの問題に注意する必要があります。 PHP コードを作成するときは、特定の使用シナリオに基づいて 2 次元配列要素を削除する適切な方法を選択することをお勧めします。

以上がPHPで2次元配列の部分配列を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート