Это связано с тем, что исходный массив не изменяется, если вы не измените его самостоятельно в функции обратного вызова.
Ваша функция обратного вызова в основном:
function($item, $key) {
htmlspecialchars($item);
}
Таким образом, пока функция вызывается, ничего не сохраняется и исходный массив не изменяется.
Если вы хотите изменить значение в функции, вы можете передать его по ссылке:
function(&$item, $key) {
$item = htmlspecialchars($item);
}
Таким образом, результат будет выглядеть так:
$new[] = "<a href='test'>Test</a><li><div>";
array_walk_recursive($new, function(&$item, $key) {
$item = htmlspecialchars($item);
});
var_dump($new) ; // change!
Конечно, вы можете определить отдельную функцию, если хотите.
person
jeroen
schedule
23.06.2016