我有一个简单的数组,沿着[2,4,7,8],我希望将条目更改为文本等价物,例如[" two"," four&#34 ;," 7"" 8"。]
我知道如何使用NumberFormatter类转换单个数字,但有一个很好的方法可以使用数组来执行此操作吗?
答案 0 :(得分:1)
最有效的方法是将array_map
与NumberFormatter::SPELLOUT
$nf = new NumberFormatter("en", NumberFormatter::SPELLOUT);
$arr = array_map(function($v) use ($nf) {
return $nf->format($v);
}, $arr);
print_r($arr); // Array ( [0] => two [1] => four [2] => seven [3] => eight )
答案 1 :(得分:-1)
你可以用foreach
来做$numberFormatter = new NumberFormatter("en", NumberFormatter::SPELLOUT);
foreach ($array as $key=>$value){
$array[$key] = $numberFormatter->format($value);
}
效果比较:
Stackoverflow - Performance of foreach, array_map with lambda and array_map with static function