在数组上应用htmlentities ENT_QUOTES

时间:2011-12-15 09:03:58

标签: php

我有一个数组$ fields:

Array
(
    [NAME] => M'y Na'me
)

我想将这些撇号转换为实体。我跑的时候:

array_map('htmlentities', &$fields, array_fill(0 , count($fields) , ENT_QUOTES) );

然后print_r $fields似乎没有任何改变?

Array
(
    [NAME] => M'y Na'me
)

如何将ENT_QUOTES的htmlentities应用于$fields中的所有元素?

编辑:这让我失去了我的钥匙

$fields = array_map('htmlentities', $fields, array_fill(0 , count($fields) , ENT_QUOTES) );

2 个答案:

答案 0 :(得分:4)

根据文档array_map返回一个新数组,不会修改就地传入的数组。

$fields = array_map(
    'htmlentities', &$fields,
    array_fill(0 , count($fields) , ENT_QUOTES)
);

根据评论编辑 -

由于这是PHP,我认为最好的方法是放弃功能路线并以旧式方式进行:

foreach($fields as $key => $value) {
    $fields[$key] = htmlentities($value, ENT_QUOTES);
}

答案 1 :(得分:1)

array_map不会修改数组,即使您将其作为参考传递也是如此 请改用$fields = array_map('htmlentities', $fields, ...)