简体   繁体   English

按键值过滤数组

[英]Array filtering by key value

I have array like this:我有这样的数组:

SimpleXMLElement Object
    (
        [item] => Array
            (
                [0] => SimpleXMLElement Object
                    (
                        [baseCurrency] => GEL
                        [baseName] => Georgian lari
                        [targetCurrency] => USD
                        [exchangeRate] => 0.32404144
                        [inverseRate] => 3.08602506
                    )
                    
                [1] => SimpleXMLElement Object
                    (
                        [baseCurrency] => GEL
                        [baseName] => Georgian lari
                        [targetCurrency] => EUR
                        [exchangeRate] => 0.28701079
                        [inverseRate] => 3.48418959
                    )
            )
    )

And I want to filter it by [targetCurrency] like:我想通过[targetCurrency]过滤它,例如:

Array
    (
        [item] => Array
            (
                [USD] => Array
                    (
                        [baseCurrency] => GEL
                        [baseName] => Georgian lari
                        [targetCurrency] => USD
                        [exchangeRate] => 0.32404144
                        [inverseRate] => 3.08602506
                    )
                    
                [EUR] => Array
                    (
                        [baseCurrency] => GEL
                        [baseName] => Georgian lari
                        [targetCurrency] => EUR
                        [exchangeRate] => 0.28701079
                        [inverseRate] => 3.48418959
                    )
            )
    )

How can I do it?我该怎么做?

You can do it like this:你可以这样做:

    $arr = [
        [
            'baseCurrency' => 'GEL',
            'baseName' => 'Georgian lari',
            'targetCurrency' => 'USD',
            'exchangeRate' => 0.32404144,
            'inverseRate' => 3.08602506,
        ],
        [
            'baseCurrency' => 'GEL',
            'baseName' => 'Georgian lari',
            'targetCurrency' => 'EUR',
            'exchangeRate' => 0.28701079,
            'inverseRate' => 3.48418959,
        ]
    ];
    $newArr = [];

    foreach ($arr as $value) {
        array_push($newArr, [
            $value['targetCurrency'] => $value
        ]);
    }

And the value of $newArr will be: $newArr的值将是:

[
    [
        "USD": [
            "baseCurrency": "GEL",
            "baseName": "Georgian lari",
            "targetCurrency": "USD",
            "exchangeRate": 0.32404144,
            "inverseRate": 3.08602506
        ]
    ],
    [
        "EUR": [
            "baseCurrency": "GEL",
            "baseName": "Georgian lari",
            "targetCurrency": "EUR",
            "exchangeRate": 0.28701079,
            "inverseRate": 3.48418959
        ]
    ]
]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM