PHP では、表形式のデータを保存したり、関連データをキーと値のペアの形式で保存したりするために 2 次元配列がよく使用されます。しかし、場合によっては 2 次元配列から特定のデータを削除する必要があるため、この記事では 2 次元配列データを削除するためのさまざまな方法を紹介します。
array_splice() 関数は、配列から特定のデータを削除し、削除された要素を返すことができます。使用方法は次のとおりです:
array_splice ( array &$input , int $offset [, int $length = 0 [, mixed $replacement = array() ]] ) : array
このうち、$input パラメータは操作対象の配列、$offset パラメータは削除を開始するインデックス位置、$length パラメータは要素数です。 $replacement パラメータは、削除された要素を置き換えるために使用されます。 $length パラメータが指定されていない場合、削除された要素は $offset 位置から始まり、配列の末尾で終わります。 $replacement パラメーターが指定されていない場合は、削除された要素の配列が返されます。
2次元配列の要素を削除する場合、削除する位置と数量を指定する必要があるため、次のコードを使用できます。
$array = array( array('id' => 1, 'name' => 'A'), array('id' => 2, 'name' => 'B'), array('id' => 3, 'name' => 'C'), array('id' => 4, 'name' => 'D') ); $index = 1; //要删除的索引位置 $len = 1; //要删除的元素个数 array_splice($array, $index, $len);
上記のコードを実行した後、配列 $array は次のように変更されます。
[ ['id' => 1, 'name' => 'A'], ['id' => 3, 'name' => 'C'], ['id' => 4, 'name' => 'D'] ]
unset() 関数を使用すると、指定されたキー名に対応する要素を削除できます。配列:
unset($array[$key]);
2 次元配列の要素を削除する場合、削除するキーの名前とそれが配置されている配列を指定する必要があります。たとえば、次の配列内の ID 2 のレコードを削除します:
$array = array( array('id' => 1, 'name' => 'A'), array('id' => 2, 'name' => 'B'), array('id' => 3, 'name' => 'C'), array('id' => 4, 'name' => 'D') ); $key = null; foreach ($array as $k => $v) { if ($v['id'] == 2) { $key = $k; //找到了要删除的键名 break; } } if ($key !== null) { unset($array[$key]); }
上記のコードを実行すると、配列 $array は次のように変更されます:
[ ['id' => 1, 'name' => 'A'], ['id' => 3, 'name' => 'C'], ['id' => 4, 'name' => 'D'] ]
array_filter() 関数は、配列内の要素をフィルタリングする、つまり、条件を満たさない配列内の要素を削除するために使用できます。 2 番目のパラメーターが渡されない場合、値が false の要素はデフォルトで削除されます。
2次元配列の要素を削除する場合、コールバック関数を使用して判定とフィルタリングを行う必要があります。たとえば、次の配列内の ID 2 のレコードを削除します:
$array = array( array('id' => 1, 'name' => 'A'), array('id' => 2, 'name' => 'B'), array('id' => 3, 'name' => 'C'), array('id' => 4, 'name' => 'D') ); $array = array_filter($array, function($v) { return $v['id'] != 2; //返回id不等于2的记录 });
上記のコードを実行すると、配列 $array は次のように変更されます:
[ ['id' => 1, 'name' => 'A'], ['id' => 3, 'name' => 'C'], ['id' => 4, 'name' => 'D'] ]
summary
この記事では、array_splice() 関数、unset() 関数、array_filter() 関数など、PHP で 2 次元配列データを削除するさまざまな方法を紹介しました。さまざまなニーズに応じてさまざまな方法を選択でき、具体的な実装方法も実際の状況に応じて最適化および改善できます。もちろん、どの方法を使用する場合でも、不要なエラーを避けるために、配列のキー名とインデックスの位置に必ず注意してください。
以上がPHPの二次元配列の削除の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。