-1

PHPでforeachループを使用して、次のオブジェクトにIDを追加したいと思います...

$ array_before

Array
(
    [1111] => Array
        (
            [Name] => Name A
            [Subcats] => Array
                (
                    [11111] => Array
                        (
                            [Name] => Name A.1
                        )
                    [11112] => Array
                        (
                            [Name] => Name A.2
                        )
                )
        )
    [2222] => Array
        (
            [Name] => Name B
            [Subcats] => Array
                (
                    [22221] => Array
                        (
                            [Name] => Name B.1
                        )
                    [22222] => Array
                        (
                            [Name] => Name B.2
                        )
                )
        )
)

...したがって、以下のようになります。

$ array_after

Array
(
    [1111] => Array
        (
            [Id] => 1
            [Name] => Name A
            [Subcats] => Array
                (
                    [11111] => Array
                        (
                            [Id] => 1
                            [Name] => Name A.1
                        )
                    [11112] => Array
                        (
                            [Id] => 2                       
                            [Name] => Name A.2
                        )
                    [11113] => Array
                        (
                            [Id] => 3                       
                            [Name] => Name A.2
                        )                       
                )
        )
    [2222] => Array
        (
                    [Id] => 2
                    [Name] => Name B
            [Subcats] => Array
                (
                    [22221] => Array
                        (
                            [Id] => 1                       
                            [Name] => Name B.1
                        )
                    [22222] => Array
                        (
                            [Id] => 2                       
                            [Name] => Name B.2
                        )
                )
        )
)

誰かが私を正しい方向に向けることができますか?

ありがとう、LG

4

1 に答える 1

6

これを試して:

$id = 0;
array_walk($array,function(&$a) use (&$id) {$a['id'] = ++$id;});

これにより、元の配列が変更され、新しいIDが作成されるのではなく、IDが追加されます。

于 2013-01-16T16:19:03.503 に答える