0

我有一个像下面这样的数组。. .

Array
(
    [code] => BILL
    [assets] => Array
        (
            [en] => Array
                (
                    [labels] => Array
                        (
                            [datestamp] => April 30, 2013
                        )

                    [data] => Array
                        (
                            [Equity] => 88.83000000000
                            [Global] => 10.84000000000
                            [Other] => 0.33099095766
                        )

                )

        )

)

我已经在这个数组上运行了 array_map 函数来删除[en]数组

$en = array_map(function ($e){ return $e['en']; } , $en );

请注意生成的数组如何截断[code]fromBILL到的值B

Array
(
    [code] => B
    [assets] => Array
        (
            [labels] => Array
                (
                    [datestamp] => April 30, 2013
                )

            [data] => Array
                (
                    [Equity] => 88.83000000000
                    [Global] => 10.84000000000
                    [Other] => 0.33099095766
                )

        )

)

关于如何避免这种情况发生的任何提示。它正在[en]根据需要删除带有键的数组,但我不希望值[code]被截断。

谢谢。

4

2 回答 2

0

您好,您可以将数组的资产部分作为参数传递给 array_map 函数,而不是将您提到的整个数组作为参数传递:

$en_new = array_map(function ($e){ return $e['en']; } , $en['assets'] );

然后附加代码部分:

$en_new['code'] = $en['code'];
于 2013-05-29T18:54:22.073 回答
0

您可以执行类型检查:

$en = array_map(function ($e){
    if (is_array($e)) {
        return $e['en'];
    } else {
        return $e;
    }
} , $en );

尽管这样做可能就足够了:

$en['assets'] = $en['assets']['en'];
于 2013-05-29T18:29:09.343 回答