0

カンマ区切りの値を持つ文字列から配列を作成しています

$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

4

3 に答える 3

4

str_replace配列にも直接作用します:

$result = str_replace(' ', '-', $result);

これは、読みにくいものと同じ結果になります

$result = array_map(function($el) { return str_replace(' ','-',$el); }, $result);

どちらもクラシックと同等です

foreach($result as &$element) {
    $element = str_replace(' ', '-', $element);
}
于 2012-08-02T22:15:21.403 に答える
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);
于 2012-08-02T22:15:55.680 に答える
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
)
于 2012-08-02T23:28:55.233 に答える