Вы можете сделать это с помощью array_walk
, это будет что-то вроде:
function cleanData( &$item, $key )
{
$item['cat_title'] = strtoupper( $item['cat_title'] );
$item['sec_title'] = htmlspecialchars( $item['sec_title'] );
}
array_walk( $arr, 'cleanData' );
Однако такие функции, как htmlspecialchars
, действительно предназначены только для самого последнего момента, когда вы фактически отправляете контент в браузер. До этого вы хотите работать с необработанным текстом и просто иметь <?=htmlspecialchars($var)?>
в файле шаблона / представления. В противном случае вы можете столкнуться с проблемами кодирования, если, например, отправите эти закодированные данные в базу данных, затем получите их и снова запустите htmlspecialchars
.
ОБНОВЛЕНИЕ : Вот код, который я использовал для проверки этого; Он отлично работает для меня. Я нахожусь на PHP 5.2, но нет никакой разницы в функции от версии 4 +.
<code>$arr = array(
array( 'title' => 'title 1', 'cat_title' => 'Drawings', 'sec_title' => 'Portfolio' ),
array( 'title' => 'title 2', 'cat_title' => 'Paintings', 'sec_title' => 'Portfolio' ),
array( 'title' => 'title 3', 'cat_title' => 'Drawings2', 'sec_title' => 'Portfolio' )
);
array_walk( $arr, 'cleanData' );
echo '<pre>', print_r($arr, true), '
';
Выходы:
Array
(
[0] => Array
(
[title] => title 1
[cat_title] => DRAWINGS
[sec_title] => Portfolio
)
[1] => Array
(
[title] => title 2
[cat_title] => PAINTINGS
[sec_title] => Portfolio
)
[2] => Array
(
[title] => title 3
[cat_title] => DRAWINGS2
[sec_title] => Portfolio
)
)