duanou2526 2014-05-08 13:05
浏览 109
已采纳

用str_replace函数替换数组中的数据

i have an array named $data

$data = array(
                    'word1'=>'Šššš',
                    'word2'=>'Zzzzžzzž',
                    'word3'=>'Āāāa'
                    );

what i want to do is to create new array with the same keys but with different values, so my new array would look like this:

$newdata = array(
                    'word1'=>'Ssss',
                    'word2'=>'Zzzzzzzz',
                    'word3'=>'Aaaa'
                    ); 

all i want to do is to replace letters with diacritical mark to normal letter, i have searched for php functions and i have understood that i could use str_replace function like this:

$search  = array('Ā', 'ā', 'Š', 'š', 'Ž', 'ž');
$replace = array('A', 'a', 'S', 's', 'Ž', ž);
str_replace($search, $replace, $data);

but how can i loop through array checking and replacing values without touching keys? or i cannot do that?(all data have to be be checked)

  • 写回答

6条回答 默认 最新

  • dou72260 2014-05-08 13:10
    关注

    try like this:

     $data = array(
        'word1'=>'Šššš',
        'word2'=>'Zzzzžzzž',
        'word3'=>'Āāāa'
    );
    
    $search  = array('Ā', 'ā', 'Š', 'š', 'Ž', 'ž');
    $replace = array('A', 'a', 'S', 's', 'Ž', 'ž');
    $data2 = array();
    foreach($data as $k =>$v){
        $data2[$k] = str_replace($search, $replace, $data[$k]);
    }
    print_r($data2);
    

    you can change the line inside foreach by this:

    $data2[$k] = str_replace($search, $replace, $v);
    

    <kbd>demo</kbd>

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line