0

我正在尝试ucfirst使用array_walk使用和匿名函数我想更改“原始”数组的值$fruits。由于我不能使用通过引用传递,你能推荐我实现什么?

<?php

$fruits = array('apple', 'orange', 'banana', 'cherry');

array_walk($fruits, function($a) {
        $fruits = ucfirst($a);
});

var_dump($fruits);

//results

array(4) {
  [0] =>
  string(5) "apple"
  [1] =>
  string(6) "orange"
  [2] =>
  string(6) "banana"
  [3] =>
  string(6) "cherry"
}
4

4 回答 4

6

array_map在这种情况下是一个更好的功能。

$fruits = array_map('ucfirst', $fruits);
于 2013-06-02T17:25:05.980 回答
3
array_walk(
    $fruits, 
    function(&$a) {
        $a = ucfirst($a);
    }
);
于 2013-06-02T17:29:34.310 回答
0
$allUpperCase = array_map(function($fruit){
    return ucfirst($fruit);
}, $fruits);
于 2013-06-02T17:30:10.403 回答
0

您可以使用 foreach 循环:

$fruits = array('apple', 'orange', 'banana', 'cherry');

foreach($fruits as $key => $value)
{
    $fruits[$key] = ucfirst($value);
}
于 2013-06-02T17:25:00.780 回答