PHP array_map trim +参数

Pat*_*rio 4 php arrays trim array-map double-quotes

我正在使用array_map修剪我的所有数组值,但我需要传递第三个参数,因为我需要的不仅仅是修剪空格,所以我传递了第三个参数.基本上我想修剪空格,单引号和双引号的所有数组值.

我有一个实用程序类,我在其中创建了该函数,它看起来像这样:

public function convertToArray($string, $trim = false) {
    $split = explode(",", $string);

    if($trim) {
        $split = array_map("trim", $split, array(" '\""));
    }

    return $split;
}
Run Code Online (Sandbox Code Playgroud)

不知怎的,我不能做这个工作.即使我按照这里的答案,我仍然可以在结果中看到双引号.

我甚至试过了

if($trim) {
    $split = array_map("trim", $split);
    $split = array_map("trim", $split, array("'"));
    $split = array_map("trim", $split, array('"'));
}
Run Code Online (Sandbox Code Playgroud)

但我仍然得到相同的结果.

Bar*_*ada 16

array_map采用只接受一个参数的函数.如果要使用trim()与默认参数不同的后续参数映射数组,则必须使用匿名函数对其进行包装:

$split = array_map(function($item) {
    return trim($item, ' \'"');
}, $split);
Run Code Online (Sandbox Code Playgroud)