使用array_walk更改数组值

时间:2014-01-29 17:46:39

标签: php arrays

这是我试图调用一组数组项的函数:

function do_this_stuff( &$key ) {

    $lookups = array(
        'this' => 'that'
    );

    if (array_key_exists($key, $lookups)) {
        return $lookups[$key];
    } else {
        return ucwords(str_replace("_", " ", $key));
    }
}

对它的呼唤:

array_walk($data[$set][0], 'do_this_stuff');

如果$lookups数组中的任何内容都在数组散列的参数中的数组中,我想替换它的内容。 do_this_stuff函数有效,但我尝试过的任何内容都没有导致实际的输入数组值更新。

1 个答案:

答案 0 :(得分:4)

您需要将更新后的值分配回$key,而不是将其返回。

function do_this_stuff( &$key ) {

    $lookups = array(
        'this' => 'that'
    );

    if (array_key_exists($key, $lookups)) {
        $key = $lookups[$key];
    } else {
        $key = ucwords(str_replace("_", " ", $key));
    }
}