str_replace字符PHP

时间:2014-03-11 16:42:08

标签: php arrays str-replace

我有这个数组:

Array
(
    [0] => Array
        (
            [0] => Windows#XP
            [1] => 3620
        )

    [1] => Array
        (
            [0] => Windows#Vista
            [1] => 1901
        )

    [2] => Array
        (
            [0] => Windows#7
            [1] => 88175
        )

等等......我想用#替换空格,这是我的代码,它似乎无法正常工作:

$tab_os = str_replace('#',' ',$tab_os);

任何解决方案?

谢谢!

3 个答案:

答案 0 :(得分:1)

$tab_os = array(
    array('Windows#XP', 3620),
    array('Windows#Vista', 1901),
    array('Windows#7', 88175),
);

foreach ($tab_os as $os_k => $os_v){
   $tab_os[$os_k] = str_replace('#', ' ', $os_v);
}
print_r($tab_os);

你需要循环它

答案 1 :(得分:1)

因为循环过于主流(也因为它更快一点),您可以使用array_map()

function replaceValue($value) {
    return str_replace('#', ' ', $value[0]);
}

array_map('replaceValue', $tab_os);

答案 2 :(得分:1)

你可以试试这个

foreach ($tab_os as $key => $value){
   $tab_os[$key]  = str_replace('#',' ',$value);
}

但实际上,str_replace接受并返回数组,所以这不应该是问题。见docs


我已尝试并测试过此代码,请在此处尝试:http://codepad.org/Ok1fZ16O

$tab_os = array( array( "Windows#XP", 1 ), array( "Windows#7", 1 ) );

foreach ($tab_os as $key => $value) {
   $tab_os[$key]  = str_replace('#', ' ', $value);
}

var_dump($tab_os);