Как запустить функцию PHP htmlspecialchars()
в массиве объектов массива?
У меня есть следующий код:
$result_set = Array
(
[0] => Array
(
[home_id] => 1
[address] => 4225 Nasmyth Dr
[city] => Plano
[state] => TX
[zip] => 76798
)
[1] => Array
(
[home_id] => 8
[address] => 4229 Nasmyth Dr
[city] => Plano
[state] => TX
[zip] => 75093
)
);
// this doesn't work since $result_set is an array of arrays and htmlspecialchars is expecting a string
htmlspecialchars($result_set, ENT_QUOTES, 'UTF-8'));
UPDATE
Обратите внимание: несмотря на то, что ниже приведено несколько ответов, ни один из них не работает для массива массивов. Ниже приведены ответы только на простые массивы.
Я пробовал следующее, но он не работает:
array_walk_recursive($result_set, "htmlspecialchars", array(ENT_QUOTES,'UTF-8'))
Я получаю следующую ошибку: htmlspecialchars() expects parameter 2 to be long, string given
ОБНОВЛЕНИЕ 2
Когда я пытаюсь:
function cleanOutput(&$value) {
return htmlspecialchars($value, ENT_QUOTES, 'UTF-8');
}
print_r($result_set);
print('-------');
print_r(array_walk_recursive($result_set, "cleanOutput"));
Я получаю следующий, нежелательный вывод:
Array
(
[0] => Array
(
[home_id] => 1
[address] => 4225 Nasmyth Dr
[city] => Plano
[state] => TX
[zip] => 76798
)
[1] => Array
(
[home_id] => 8
[address] => 4229 Nasmyth Dr
[city] => Plano
[state] => TX
[zip] => 75093
)
)
-------1
ОБНОВЛЕНИЕ 3
Когда я пытаюсь:
function cleanOutput(&$value) {
return htmlspecialchars($value, ENT_QUOTES, 'UTF-8');
}
$result_set = Array
(
[0] => Array
(
[home_id] => 1
[address] => 4225 Nasmyth Dr
[city] => Plano
[state] => TX
[zip] => 76798
)
[1] => Array
(
[home_id] => 8
[address] => 4229 Nasmyth Dr
[city] => Plano
[state] => TX
[zip] => 75093
)
);
$cleanedOutput = array();
foreach ($result_set as $rs) {
$cleaned[] = array_map("cleanOutput", $rs);
}
print_r($cleanedOutput);
Получаю следующие, нежелательные результаты:
{'homes' : []}