1
$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

4 回答 4

7

利用array_map()

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

看到它在行动

于 2013-02-28T01:06:52.947 回答
2

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

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

注意&以下$val

这里有一些关于 PHP 引用的文档。

于 2013-02-28T01:11:25.890 回答
0

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

在 $val 之前放一个 & 符号。这将使它引用变量而不是分配值。

于 2013-02-28T01:11:14.323 回答
0

为什么不直接使用密钥来访问数组呢?

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

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

var_dump($arr);
于 2013-02-28T01:18:51.067 回答