有一个字符串,"lsf[a]lslfas[a]lsdjflsa[a]",
然后有琴数组array('AA','BB','CC').
怎样将字符串变为"lsf[AA]lslfas[BB]lsdjflsa[CC]",

解决方案 »

  1.   

    $s = "lsf[a]lslfas[a]lsdjflsa[a]";
    $a = array('AA','BB','CC');$s2a = explode('[a]', $s);
    if (!$s2a[0]) {
        unset($s2a[0]);
    }
    if (!$s2a[count($s2a) - 1]) {
        unset($s2a[count($s2a) - 1]);
    }$str = '';
    foreach ($s2a as $key => $s) {
        if (!isset($a[$key])) {
            break;
        }
        $str .= $s . '[' . $a[$key] . ']';
    }
      

  2.   

    $s="lsf[a]lslfas[a]lsdjflsa[a]";
    echo preg_replace_callback('/\[(.*?)\]/','foo',$s);
    function foo($m){
        static $i=0;
        $ar=array('AA','BB','CC');
    return '['.$ar[$i++].']';
    }