PHP では、2 次元配列は非常に一般的に使用されるデータ構造です。 2 次元配列の演算を行う場合、特定の列のデータを削除する必要がある場合があり、この状況は比較的頻繁に発生します。では、PHP の 2 次元配列の特定の列のデータを削除するにはどうすればよいでしょうか?この記事では詳しく紹介していきます。
削除方法 1: foreach ループを使用して特定の列を削除する
PHP では、foreach ループを使用して 2 次元配列を走査し、走査プロセス中に指定された列を削除できます。具体的なアイデアは次のとおりです:
1. foreach ループを通じて配列の各列を取り出します。
2. unset 関数を使用して、指定した列を削除します。
3. 削除した列を配列に再編成します。
コード例:
$arr=array( array('id'=>1,'name'=>'张三','age'=>18), array('id'=>2,'name'=>'李四','age'=>19), array('id'=>3,'name'=>'王五','age'=>20) ); foreach($arr as &$v){ unset($v['name']); //删除某一列 } unset($v); //重置$v的引用 print_r($arr);
削除方法 2: array_map 関数を使用して特定の列を削除する
PHP では、array_map 関数を使用して特定の列を削除することもできます。具体的なアイデアは次のとおりです:
1. array_map 関数を使用して、配列の各要素 (つまり、各行) を操作し、指定された列を削除します。
2. 削除された配列を新しい配列に再構築します。
コード例:
$arr=array( array('id'=>1,'name'=>'张三','age'=>18), array('id'=>2,'name'=>'李四','age'=>19), array('id'=>3,'name'=>'王五','age'=>20) ); //回调函数:删除某一列 function delete_col($arr,$key){ unset($arr[$key]); return array_values($arr); } $new_arr=array_map('delete_col',$arr,array_fill(0,count($arr),'name')); print_r($new_arr);
コードの説明:
array_map() 関数は、配列の各要素に対して関数をコールバックし、新しい配列を返します。ここで、コールバック関数は delete_col() 関数で、配列と削除する列のキー (つまり、名前列) の 2 つのパラメーターを受け取ります。関数本体では、unset() を使用して指定された列を削除し、次に array_values() を使用して配列のキーを再配置し、最後に新しい配列を返します。
削除方法 3: array_column 関数を使用して特定の列を削除する
PHP では、array_column 関数を使用して特定の列を削除することもできます。具体的な考え方は次のとおりです:
1. まず、array_column 関数を使用して、指定された列の値を取得します。
2. array_diff 関数を使用して、取得した列の値を元の配列から削除します。
コード例:
$arr=array( array('id'=>1,'name'=>'张三','age'=>18), array('id'=>2,'name'=>'李四','age'=>19), array('id'=>3,'name'=>'王五','age'=>20) ); $column=array_column($arr,'name'); //获取指定列 $new_arr=array_map(function($v) use($column){ return array_diff_key($v,$column); //删除指定列 },$arr); print_r($new_arr);
コードの説明:
array_column() 関数は、配列内の指定された列を返します。したがって、$column 配列に格納されるのは、2 次元配列の name カラムです。次に、array_map 関数を使用して元の配列を走査し、array_diff_key 関数を使用して元の配列から指定された列を削除し、最後に新しい配列を返します。
概要
PHP の 2 次元配列の列を削除する操作は、foreach ループ、array_map 関数、または array_column 関数を使用して実現できます。実際の運用では、特定のシナリオに応じて適切な方法を選択することで、効率的かつシンプルな結果を達成できます。
以上がPHPで2次元配列から特定のデータ列を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。