$ jobs是从数据库查询中检索的数组。 print_r($jobs)
显示:
Array
(
[ID] => 131
[Title] => -bla-
[Baseline] => lorem ipsum ...
[Description] => <ul><li>list 1</li><li>list 2</li></ul>
[EventID] => 1008
)
Array
(
[ID] => 132
[Title] => -bla 2-
[Baseline] => lorem ipsum lorem ipsum...
[Description] => <ul><li>list 1</li><li>list 2</li></ul>
[EventID] => 1009
)
等等......
我想在这些数组的所有值上运行utf8_encode()。我不确定我是否应该使用array_map,array_walk_recursive?输出不应该改变数组键的名称,这样我就不需要在模板中更改任何内容,所以
<h1><?=$j['title']?></h1>
应该仍然有效,尽管是utf8编码的。
编辑:我正在尝试以下,没有运气function fix_chars($key, $value)
{
return utf8_encode($value);
}
array_walk_recursive($jobs, 'fix_chars');
答案 0 :(得分:23)
这应该有效:
<?php
function encode_items(&$item, $key)
{
$item = utf8_encode($item);
}
array_walk_recursive($jobs, 'encode_items');
?>
答案 1 :(得分:6)
以下是array_map()
的示例:
function utf8_encode_array($array) {
return array_map('utf8_encode', $array);
}
$encoded_array = array_map('utf8_encode_array', $your_array);
我不知道array_map
和array_walk_recursive
之间是否存在性能差异。