Как я могу создать исключение для определенного ключа в функции PHP array_walk_recursive? - PullRequest
0 голосов
/ 24 февраля 2011

У меня есть многомерный ассоциативный массив, и я хочу применить array_walk_recursive, чтобы я мог выполнять функцию для каждого отдельного значения.

Однако всякий раз, когда ключ называется «специальным», я хочу выполнить другойfunction.

Итак, если массив такой:

$array = array('a' => 'apple', 'b' => 'banana', 'special' => 'xylophone', 'c' => 'cherry');

Затем я хочу выполнить функцию doThis () для 'a', 'b' и 'c', и яхотите выполнить doThat () для 'special'.

Возможно ли это?

(Примечание: мой пример - простой массив, но реальный код должен работать с многомерным массивом)

1 Ответ

2 голосов
/ 24 февраля 2011

Ваша функция получает ключ в качестве второго аргумента:

function foo(&$item, $key) {
    if ($key == 'special') {
        return doThat($item, $key);
    }
    return doThis($item, $key);
}
...