ホームページ  >  記事  >  バックエンド開発  >  PHPの二次元配列から指定した列を削除します

PHPの二次元配列から指定した列を削除します

王林
王林オリジナル
2023-05-19 17:06:09946ブラウズ

PHP 開発では、配列は非常に一般的なデータ型であり、2 次元配列はさまざまなビジネス シナリオで広く使用されています。しかし、実際の開発では、特定の行や列を削除するなど、2 次元配列に対して何らかの操作を実行する必要があることがよくあります。この記事では、PHPを使って2次元配列を操作して指定列を削除する方法を紹介します。

  1. unset 関数を使用して指定した列を削除する

PHP の unset 関数を使用すると、通常の配列、連想配列、複数の配列を含む配列内の要素を削除できます。次元配列。構文は次のとおりです。

unset($array[index]);

このうち、$array は削除する要素の配列を表し、index は削除する要素の添字を表します。削除される。

2 次元配列の場合、入れ子になったループを通じて配列全体を走査し、unset 関数を使用して指定された列を削除できます。サンプル コードは次のとおりです。

<?php
$array = array(
            array('a'=>1, 'b'=>2, 'c'=>3),
            array('a'=>4, 'b'=>5, 'c'=>6),
            array('a'=>7, 'b'=>8, 'c'=>9),
        );

$remove_key = 'b';

for ($i = 0; $i < count($array); $i++) {
    unset($array[$i][$remove_key]); // 删除指定列
}

print_r($array);
?>

上記のコードでは、3 つの要素を含む 2 次元配列を作成し、削除する列を b として指定し、ループを使用して 2 次元全体を走査します。配列を作成し、各行を順番に削除します。最後に、処理された 2 次元配列を出力します。

  1. array_map 関数を使用して指定した列を削除します

unset 関数に加えて、PHP には、指定したコールバック関数を各列に適用できる array_map 関数も提供されています。配列要素を取得し、新しい配列を返します。したがって、array_map 関数を匿名関数と組み合わせて使用​​して、指定された列の値を null に設定することで、指定された列を削除する効果を得ることができます。サンプル コードは次のとおりです。

<?php
$array = array(
            array('a'=>1, 'b'=>2, 'c'=>3),
            array('a'=>4, 'b'=>5, 'c'=>6),
            array('a'=>7, 'b'=>8, 'c'=>9),
        );

$remove_key = 'b';

$array = array_map(function($row) use ($remove_key) {
            unset($row[$remove_key]); // 删除指定列
            return $row;
        }, $array);

print_r($array);
?>

上記のコードでは、3 つの要素を含む 2 次元配列も作成し、削除する列を b として指定し、array_map 関数を使用して各行を走査し、無名関数を適用すると、指定されたカラムの値がnullに設定され、最終的に加工された2次元配列が得られます。

  1. array_column 関数と array_diff 関数を使用して指定した列を削除する

上記 2 つの方法に加えて、PHP の組み込みの array_column 関数と array_diff 関数を使用して削除することもできます。指定された列。 array_column 関数は 2 次元配列の指定した列の値を抽出でき、array_diff 関数は複数の配列の差分を計算できます。したがって、array_column 関数を使用して指定した列を抽出し、次に array_diff 関数を使用して差分集合を計算することで、指定した列を削除した配列を取得できます。サンプル コードは次のとおりです。

<?php
$array = array(
            array('a'=>1, 'b'=>2, 'c'=>3),
            array('a'=>4, 'b'=>5, 'c'=>6),
            array('a'=>7, 'b'=>8, 'c'=>9),
        );

$remove_key = 'b';

$result = array();

foreach ($array as $row) {
    $result[] = array_diff_key($row, array($remove_key => ''));
}

print_r($result);
?>

上記のコードでは、3 つの要素を含む 2 次元配列も作成し、削除する列を b に指定し、ループ内で array_diff_key 関数を使用して、差集合を計算し、その結果を新しい配列に追加して、最終的に処理された 2 次元配列が得られます。

概要:

unset 関数、array_map 関数、array_column および array_diff 関数を使用するかどうかに関係なく、PHP で指定した列を削除できます。どの方法を選択するかは、実際のビジネス シナリオと個人のプログラミング習慣によって異なります。実際の開発では、ニーズに応じて最適な方法を選択し、コードの効率性や可読性を向上させることができます。

以上がPHPの二次元配列から指定した列を削除しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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