php数组_映射删除的内容超过了要求
我有一个如下的数组php数组_映射删除的内容超过了要求,php,array-map,Php,Array Map,我有一个如下的数组 Array ( [code] => BILL [assets] => Array ( [en] => Array ( [labels] => Array ( [datestamp] => April 30, 2013
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\u 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'];
您好,您可以将数组的资产部分作为参数传递给array_map函数,而不是将您提到的整个数组作为参数传递:
$en_new = array_map(function ($e){ return $e['en']; } , $en['assets'] );
然后附加代码部分:
$en_new['code'] = $en['code'];
当用于按索引访问字符串时,索引
'en'
将转换为int(=>0)<代码>比尔[0]=>'B'
是的,它将字符串视为数组,Yoshi是对的。你的第二个想法是我使用的,嗯<代码>$en_new['code']=$en['code']代码>谢谢。