ホームページ >バックエンド開発 >PHPの問題 >PHPで2次元配列から特定のデータ列を削除する方法

PHPで2次元配列から特定のデータ列を削除する方法

PHPz
PHPzオリジナル
2023-04-25 17:36:161208ブラウズ

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 サイトの他の関連記事を参照してください。

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