ホームページ  >  記事  >  バックエンド開発  >  PHPで2次元配列から複数の列を削除する方法

PHPで2次元配列から複数の列を削除する方法

PHPz
PHPzオリジナル
2023-04-20 10:15:171014ブラウズ

PHP プログラミングでは、2 次元配列は最も一般的なデータ型の 1 つです。 2 次元配列は複数の 1 次元配列で構成されているため、多次元データの保存と処理が容易になります。実際のプログラミングでは、2次元配列からいくつかの列を取り出して演算したり出力したりすることがよくあります。この記事では、2 次元配列から複数の列を抽出するいくつかの方法を紹介します。

1. ループ走査を使用する

最も簡単な方法は、ループを使用して 2 次元配列を走査し、必要な列を削除することです。以下はサンプル コードです:

$array = array(
  array('id'=>1, 'name'=>'张三', 'age'=>18, 'address'=>'北京'),
  array('id'=>2, 'name'=>'李四', 'age'=>20, 'address'=>'上海'),
  array('id'=>3, 'name'=>'王五', 'age'=>22, 'address'=>'广州'),
);

$columns = array('name', 'age');

foreach($array as $key => $item){
  foreach($columns as $col){
    echo $item[$col]."  ";
  }
  echo "<br/>";
}

ここでは、各人の ID、名前、年齢、住所などの情報を含む 2 次元配列 $array を定義します。そこから名前と年齢の列情報を抽出する必要があります。 2 つの foreach ループを使用して、配列と出力される列を走査します。 $item[$col]を通じて、各人物に対応する情報を取得し、直接出力することができます。

2. array_column 関数を使用する

PHP の array_column 関数は、ループを自分で書かなくても、2 次元配列から特定の列を直接取り出すことができます。以下はサンプル コードです:

$array = array(
  array('id'=>1, 'name'=>'张三', 'age'=>18, 'address'=>'北京'),
  array('id'=>2, 'name'=>'李四', 'age'=>20, 'address'=>'上海'),
  array('id'=>3, 'name'=>'王五', 'age'=>22, 'address'=>'广州'),
);

$columns = array('name', 'age');

$result = array_column($array, $columns[0]);

for($i=1; $i<count($columns); $i++){
  $temp = array_column($array, $columns[$i]);
  $result = array_map(null, $result, $temp);
}

foreach($result as $value){
  echo $value[0]." ".$value[1]."<br/>";
}

ここでは、2 次元配列 $array と出力される列 $columns も定義します。 array_column 関数を呼び出すことで、$array からすべての名前列の値を直接取得し、array_map 関数を使用して複数の列の値を 2 次元配列 $result にマージできます。最後に、foreach ループを通じて $result の各行のデータを出力します。

3. array_reduce 関数を使用する

もう 1 つの実装方法は、PHP の array_reduce 関数を使用することです。 array_reduce 関数は、配列を値に結合し、配列の合計や最大値の計算などの演算によく使用されます。以下はサンプル コードです:

$array = array(
  array('id'=>1, 'name'=>'张三', 'age'=>18, 'address'=>'北京'),
  array('id'=>2, 'name'=>'李四', 'age'=>20, 'address'=>'上海'),
  array('id'=>3, 'name'=>'王五', 'age'=>22, 'address'=>'广州'),
);

$result = array_reduce($array, function($carry, $item){
  return array($carry[0]." ".$item['name'], $carry[1]." ".$item['age']);
}, array('',''));

echo $result[0]."<br/>";
echo $result[1]."<br/>";

ここでは、2 次元配列 $array も定義します。 array_reduce 関数を呼び出すと、各 1 次元配列 $item 内の名前と年齢の情報が 1 次元配列 $carry にマージされます。最後にマージ結果を出力します。

概要:

上記の 3 つのメソッドは、2 次元配列から指定された列を削除し、それを加工または出力することができます。その中で、ループ トラバーサルが最も一般的な方法であり、array_column 関数と array_reduce 関数はより簡潔で高度です。実際のプログラミングでは、ニーズに応じて最適な方法を選択して動作させることができます。

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

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