我正在使用逗号分隔值
创建一个数组$result = "apple, hello word, 80, apple";
$result = str_getcsv($result); //create array
$result = array_filter(array_map('trim', $result)); //remove whitespaces
值中的某些字符在它们之间有空格,例如hello world
,我想用短划线替换空格(以使字符串URL友好。)示例:hello-world
我想过使用str_replace
迭代数组但是可以使用array_map
更好地完成,就像我正在修剪一样吗?
答案 0 :(得分:3)
str_replace
也可以直接在数组上工作:
$result = str_replace(' ', '-', $result);
这与可读性较差的
具有相同的结果$result = array_map(function($el) { return str_replace(' ','-',$el); }, $result);
两者也相当于经典
foreach($result as &$element) {
$element = str_replace(' ', '-', $element);
}
答案 1 :(得分:1)
试
function urlFrendly($str){
return str_replace(' ', '-', $str);
}
$result = "apple, hello word, 80, apple";
$result = str_getcsv($result); //create array
$result = array_filter(array_map('trim', $result)); //remove whitespaces
$result = array_map('urlFrendly', $result);
var_dump($result);
答案 2 :(得分:0)
$result = "apple, hello word, 80, apple";
$replaced = preg_replace('/\s*([[:alpha:]]+) +([[:alpha:]]+)\s*/', '\\1-\\2',$result);
$array = str_getcsv($replaced);
print_r($array);
输出:
Array
(
[0] => apple
[1] => hello-word
[2] => 80
[3] => apple
)