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]from からBILLtoの値をどのように切り捨てたかに注意してください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

タイプチェックを実行できます:

$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 に答える
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 に答える