将数组的第一个字母值更改为大写

时间:2013-02-28 01:06:06

标签: php arrays multidimensional-array

$arr = array ('name'=>'bunt','game'=>'battlefield','fame'=>'hero');

foreach ($arr as $key=>$val){
  $val = ucfirst($val);
}

var_dump($arr);
// result would be
// 'name' => 'Bunt', 'game' => 'Battlefield', 'fame' => 'Hero'

我在这里遗漏了一些东西......如何实现这个目标?

4 个答案:

答案 0 :(得分:7)

使用array_map()

$new_array = array_map('ucfirst', $arr);

See it in action

答案 1 :(得分:2)

$val只是每次迭代中的临时变量。要更新每个键的值,您需要将其作为参考传递。这样做。

foreach ($arr as $key => &$val) {
    $val = ucfirst($val);
}

请注意&之后的$val

Here's关于PHP中引用的一些文档。

答案 2 :(得分:0)

foreach($ arr as $ key =>& $ val){   $ val = ucfirst($ val); }

放一个&在$ val之前签字。这将使它引用变量而不是赋值。

答案 3 :(得分:0)

为什么不使用密钥来访问阵列?

<?php
$arr = array('name' => 'bunt', 'game' => 'battlefield');

foreach ($arr as $key => $val) {
    $arr[$key] = ucfirst($val);
}

var_dump($arr);