簡體   English   中英

通過鍵在多維數組中取消設置

[英]Unset in multidimentionnal array by key

我有這個數組,我想取消所有“下載”數組

    Array
(
    [assetIndex] => Array
        (
            [id] => 1.10
            [sha1] => 72241db3c0bdc39e39b202182ff0000da5271a1d
            [size] => 145874
            [url] => https://launchermeta.mojang.com/mc/assets/1.10/72241db3c0bdc39e39b202182ff0000da5271a1d/1.10.json
            [totalSize] => 122198775
        )

    [assets] => 1.10
    [downloads] => Array
        (
            [client] => Array
                (
                    [sha1] => dc8e75ac7274ff6af462b0dcec43c307de668e40
                    [size] => 8857653
                    [url] => https://launcher.mojang.com/mc/game/1.10.2/client/dc8e75ac7274ff6af462b0dcec43c307de668e40/client.jar
                )

            [server] => Array
                (
                    [sha1] => 3d501b23df53c548254f5e3f66492d178a48db63
                    [size] => 9459897
                    [url] => https://launcher.mojang.com/mc/game/1.10.2/server/3d501b23df53c548254f5e3f66492d178a48db63/server.jar
                )

        )

    [id] => 1.10.2
    [libraries] => Array
        (
            [0] => Array
                (
                    [name] => com.mojang:netty:1.6
                    [downloads] => Array
                        (
                            [artifact] => Array
                                (
                                    [size] => 7877
                                    [sha1] => 4b75825a06139752bd800d9e29c5fd55b8b1b1e4
                                    [path] => com/mojang/netty/1.6/netty-1.6.jar
                                    [url] => https://libraries.minecraft.net/com/mojang/netty/1.6/netty-1.6.jar
                                )

                        )

                )

            [1] => Array
                (
                    [name] => oshi-project:oshi-core:1.1
                    [downloads] => Array
                        (
                            [artifact] => Array
                                (
                                    [size] => 30973
                                    [sha1] => 9ddf7b048a8d701be231c0f4f95fd986198fd2d8
                                    [path] => oshi-project/oshi-core/1.1/oshi-core-1.1.jar
                                    [url] => https://libraries.minecraft.net/oshi-project/oshi-core/1.1/oshi-core-1.1.jar
                                )

                        )

                )

            [2] => Array
                (
                    [name] => net.java.dev.jna:jna:3.4.0
                    [downloads] => Array
                        (
                            [artifact] => Array
                                (
                                    [size] => 1008730
                                    [sha1] => 803ff252fedbd395baffd43b37341dc4a150a554
                                    [path] => net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar
                                    [url] => https://libraries.minecraft.net/net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar
                                )

                        )

                )

            [3] => Array
                (
                    [name] => net.java.dev.jna:platform:3.4.0
                    [downloads] => Array
                        (
                            [artifact] => Array
                                (
                                    [size] => 913436
                                    [sha1] => e3f70017be8100d3d6923f50b3d2ee17714e9c13
                                    [path] => net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar
                                    [url] => https://libraries.minecraft.net/net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar
                                )

                        )

                )
        )
)

我正在使用 search_array,我假設因為它是多維的,所以沒有找到它。 如何遞歸搜索? 我還嘗試了一堆我在網上找到的例子,但我找不到適合我需要的任何東西。

那這個呢

function array_unset_recursive(&$array, $removeKey) {
    foreach ($array as $key => &$value) {
        if($key == $removeKey){
            unset($array[$key]);
        }
        else if (is_array($value)) {
            array_unset_recursive($value, $removeKey);
        }
    }
}

array_unset_recursive($arr, 'downloads');

您只需要為主要downloads索引運行unset 對於子數組,只需循環遍歷您的$array['libraries']並保持取消設置子數組downloads字段。

unset($array['downloads']); /* Unset the downloads field within the main array */

foreach ($array['libraries'] as &$arr) {
    unset($arr['downloads']); /* Unset the downloads field within the subarray */
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM