我有一个像下面这样的数组…
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]
的值从BILL
截断为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]
的值被截断。
谢谢。
您可以执行类型检查:
$en = array_map(function ($e){
if (is_array($e)) {
return $e['en'];
} else {
return $e;
}
} , $en );
尽管这样做可能就足够了:
$en['assets'] = $en['assets']['en'];
Hello而不是传递整个数组作为参数,您可以将数组的资产部分作为参数传递给array_map函数:
$en_new = array_map(function ($e){ return $e['en']; } , $en['assets'] );
,然后加上代码部分:
$en_new['code'] = $en['code'];