ホームページ > バックエンド開発 > PHPの問題 > PHPの配列ループ変換

PHPの配列ループ変換

王林
リリース: 2023-05-19 20:00:47
オリジナル
697 人が閲覧しました

PHP プログラミングでは、配列は最も一般的なデータ構造の 1 つです。配列を使用すると、大量の関連データを保存、整理し、アクセスできるようになります。多くの場合、配列に対して検索、並べ替え、フィルタリングなどの一連の操作を実行する必要があります。中でも配列ループ変換は比較的重要な操作ですが、今回はPHPを使って配列ループ変換を実装する方法を詳しく紹介します。

1. 配列ループの基本構造

PHP では、for、foreach、およびその他のループ ステートメントを使用して配列をループできます。 for ループの基本構造は次のとおりです。

for ($i = 0; $i < count($array); $i++) {
  // do something with $array[$i]
}
ログイン後にコピー

foreach ステートメントを使用しても同じ効果を実現できます。

foreach ($array as $value) {
  // do something with $value
}
ログイン後にコピー

2. 配列変換方法

PHP の場合配列は、次の 2 つの方法で変換できます。

  1. 配列関数の使用

PHP には、配列に対してさまざまな操作を実行するための多数の関数が用意されています。配列の変換に使用できます。一般的に使用される関数の一部を以下に示します。

  • array_map(): 配列内の各要素にコールバック関数を適用し、新しい配列を返します。
  • array_filter(): コールバック関数を使用します。配列内の要素をフィルターし、新しい配列を返します。
  • array_reduce(): 配列を 1 つの値に減らし、その値を返します。

以下は、array_map( の使用法です。 ) 関数 配列内の各要素を二乗する例:

$array = array(1, 2, 3, 4, 5);
$new_array = array_map(function($x){ return $x * $x; }, $array);
print_r($new_array);
ログイン後にコピー

出力は次のとおりです:

Array
(
    [0] => 1
    [1] => 4
    [2] => 9
    [3] => 16
    [4] => 25
)
ログイン後にコピー
ログイン後にコピー

array_map() 関数を使用するときは、コールバック関数をパラメーターとして渡す必要があることに注意してください。このコールバック関数は 1 つの引数 (各要素の値) を受け取り、要素を置き換える値を返します。

  1. ループ構造の使用

配列をループし、for または foreach ステートメントを通じて変換できます。以下は、配列内の要素を四角形にするための for ループの使用例です:

$array = array(1, 2, 3, 4, 5);
$new_array = array();
for ($i = 0; $i < count($array); $i++) {
  $new_array[] = $array[$i] * $array[$i];
}
print_r($new_array);
ログイン後にコピー

出力結果も次のようになります:

Array
(
    [0] => 1
    [1] => 4
    [2] => 9
    [3] => 16
    [4] => 25
)
ログイン後にコピー
ログイン後にコピー

3. バッチ変換操作

2 次元配列があり、そのデータは次のとおりです:

$data = array(
  array('name' => '张三', 'age' => 19, 'gender' => '男'),
  array('name' => '李四', 'age' => 21, 'gender' => '女'),
  array('name' => '王五', 'age' => 20, 'gender' => '男'),
);
ログイン後にコピー

次に、それを次の形式に変換する必要があります:

$new_data = array(
  array('姓名' => '张三', '年龄' => 19, '性别' => '男'),
  array('姓名' => '李四', '年龄' => 21, '性别' => '女'),
  array('姓名' => '王五', '年龄' => 20, '性别' => '男'),
);
ログイン後にコピー

この操作を実現するには、foreach ループを使用できます:

$new_data = array();
foreach ($data as $values) {
  $new_data[] = array('姓名' => $values['name'], '年龄' => $values['age'], '性别' => $values['gender']);
}
print_r($new_data);
ログイン後にコピー

出力結果は以下の通りです。

Array
(
    [0] => Array
        (
            [姓名] => 张三
            [年龄] => 19
            [性别] => 男
        )

    [1] => Array
        (
            [姓名] => 李四
            [年龄] => 21
            [性别] => 女
        )

    [2] => Array
        (
            [姓名] => 王五
            [年龄] => 20
            [性别] => 男
        )

)
ログイン後にコピー

4. 注意点

  1. 元の配列は変更されません

PHPではループ変換操作では通常、元の配列を変更せずに新しい配列が生成されます。したがって、運用時に元の配列の値を変更しないように注意する必要があります。

  1. コールバック関数

変換に配列関数を使用する場合、パラメータとしてコールバック関数を渡す必要があります。コールバック関数が一部の外部変数にアクセスする必要がある場合は、クロージャを使用してコールバック関数を定義し、コールバック関数が外部変数に正しくアクセスできるようにする必要があります。

  1. 配列のインデックス

ループ変換演算では、配列のインデックスに注意する必要があります。新しい配列のインデックスを明示的に指定しない場合、PHP は自動的にインデックス値を割り当てます。通常は 0 から始まり増加します。

5. まとめ

PHP における配列は非常に便利なデータ構造であり、その中でもループ変換は非常に重要な操作です。 for、foreach ループ構造、または array_map、array_filter、array_reduce などの配列関数を使用して、配列変換を実現できます。操作中は、元の配列の値を変更しないように注意し、配列のインデックスに注意する必要があります。この記事が、読者が PHP での配列ループ変換をマスターするのに役立つことを願っています。

以上がPHPの配列ループ変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート