現在の位置: ホーム> 最新記事一覧> array_map()を使用した複雑な構造を前処理する

array_map()を使用した複雑な構造を前処理する

M66 2025-06-07

PHPでは、 array_map()は、配列のすべての要素をコールバックできる非常に強力な関数です。この機能は、以降の統計作業を簡素化するために複雑なデータ構造を事前に処理する必要がある場合に特に適しています。この記事では、array_map()を使用して複雑なデータ構造を効果的に処理する方法を紹介し、その後のデータ統計を容易にします。

1。array_map ()関数の紹介

array_map()関数を使用すると、配列内の各要素にコールバック関数を適用し、新しい配列を返すことができます。この関数の基本的な構文は次のとおりです。

 array_map(callback $callback, array $array, array ...$arrays): array
  • $ callback :配列内の各要素に作用するコールバック関数。

  • $配列:処理する配列。

  • $ array :オプションでは、追加のパラメーターとしてより多くの配列を渡すことができ、コールバック関数は各配列の要素を順番に処理します。

2。複雑なデータ構造へのarray_map()の適用

実際の開発では、アレイにはネストされた多次元データ構造が含まれている場合があります。この複雑なデータ構造をArray_map()を介して事前に処理して、その後の統計作業を簡素化できます。例を見てみましょう:

複数のユーザー情報を含む配列があり、各ユーザーの構造が次のとおりであるとします。

 $users = [
    ['name' => 'John', 'email' => 'john@example.com', 'age' => 28],
    ['name' => 'Jane', 'email' => 'jane@example.com', 'age' => 34],
    ['name' => 'Tom', 'email' => 'tom@example.com', 'age' => 40],
];

array_map()を介して各ユーザーの年齢情報を抽出し、その後の統計作業を促進するために5歳の年齢を追加したいと考えています。次のコードを使用できます。

 $ages = array_map(function($user) {
    return $user['age'] + 5;
}, $users);

print_r($ages);

出力の結果は次のとおりです。

 Array
(
    [0] => 33
    [1] => 39
    [2] => 45
)

3。多次元配列の深さ処理

より複雑な場合、アレイには単純なフィールド以上のものが含まれる場合があります。たとえば、複数の注文情報の配列がある場合があります。各注文には複数のアイテムが含まれています。

 $orders = [
    ['order_id' => 1, 'products' => [['name' => 'apple', 'price' => 1.5], ['name' => 'banana', 'price' => 2.0]]],
    ['order_id' => 2, 'products' => [['name' => 'carrot', 'price' => 0.9], ['name' => 'date', 'price' => 3.5]]],
];

各注文の各アイテムの価格を10%割引し、各アイテムの名前と割引価格を返品するとします。 array_map()およびネストされたコールバック関数を介してこれを達成できます。

 $discountedOrders = array_map(function($order) {
    $order['products'] = array_map(function($product) {
        $product['price'] *= 0.9; // 10%割引
        return $product;
    }, $order['products']);
    return $order;
}, $orders);

print_r($discountedOrders);

出力結果:

 Array
(
    [0] => Array
        (
            [order_id] => 1
            [products] => Array
                (
                    [0] => Array
                        (
                            [name] => apple
                            [price] => 1.35
                        )
                    [1] => Array
                        (
                            [name] => banana
                            [price] => 1.8
                        )
                )
        )
    [1] => Array
        (
            [order_id] => 2
            [products] => Array
                (
                    [0] => Array
                        (
                            [name] => carrot
                            [price] => 0.81
                        )
                    [1] => Array
                        (
                            [name] => date
                            [price] => 3.15
                        )
                )
        )
)

この例では、最初に注文の各アイテムに割引を適用し、割引を含むアイテムの配列を返します。 Nested array_map()を使用することにより、多次元配列を簡単に処理し、必要なフィールドを抽出および変更できます。

4。URLの交換とデータのクリーニング

多くのアプリケーションでは、配列内のURLを均一に処理する必要がある場合があります。たとえば、配列内のすべてのURLのドメイン名をM66.netに置き換えます。 array_map()を使用して配列の各URLを処理できます。コードの例は次のとおりです。

 $urls = [
    'https://www.example.com/page1',
    'https://www.example.com/page2',
    'https://www.example.com/page3',
];

$updatedUrls = array_map(function($url) {
    return preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $url);
}, $urls);

print_r($updatedUrls);

出力結果:

 Array
(
    [0] => https://m66.net/page1
    [1] => https://m66.net/page2
    [2] => https://m66.net/page3
)

この例では、 preg_replace()を使用して、URLのドメイン名パーツを置き換えます。 array_map()を使用すると、各URLを処理し、交換されたURLを含む新しい配列を返します。

5。概要

array_map()を使用すると、特に多次元配列を処理し、アレイ要素のバッチ変更が必要な場合、複雑なデータ構造を非常に便利に前処理できます。コールバック関数と組み合わせて、さまざまな複雑なデータクリーニング、統計、さらにはデータ変換操作を実装できます。

PHPでは、 array_map()は、開発者がデータを効率的に処理し、その後の作業を簡素化するのに役立つ非常に強力なツールです。複雑なデータ処理タスクに直面している場合、 array_map()は間違いなく価値のあるスキルです。