用 str_replace 替换字母的函数?

问题描述 投票:0回答:1
    $allsubs = array("j for e",);
    
    $unaltered = "soupeercali";
    $withj = str_replace("e", "j", $unaltered);
    $stepsinchain = array($withj);
    
    
    function choices($sub, $letter) {
        global $allsubs;
        global $stepsinchain;
        array_push($allsubs, "$sub for $letter");
        
        $subed= "with$letter";
        echo $subed= str_replace($letter, $sub, prev($stepsinchain));
        return $subed;
        array_push($stepsinchain, $subed);
    
    }

choices ("a", "o");
choices ("c", "l");
choices ("d", "i");

代码的快速解释:这个想法是有一个函数,它将接受一个单词并将所有指定的字母替换为另一个字母或数字。在我的函数 choices() 中,用户输入 $sub(stitution) 和将被替换的 $letter。该函数的第一部分工作正常,并将所有替换声明放入数组 $allsubs 中。

函数的第二部分意味着允许我继续使用 choices() 继续对第一个单词进行替换,这里称为“soupeercali”。我将每个替换词输入到数组中,这样我的函数就可以访问该词的前一个替换词以进行下一个替换。

但是不管用,一直用头撞墙,开始流血了。关于如何使这种功能起作用的任何帮助?

php arrays function str-replace dot-notation
1个回答
0
投票

最后一个 array_push 没有被调用,因为你之前返回。改成:

array_push($stepsinchain, $subed);
return $subed;

由于 $subed 从未存储在 $stepsinchain 数组中,由于返回之前,您无法访问以前的交替。

array_push 也较慢,在数组中输入一个元素时不推荐使用。相反,使用

$stepsinchain[] = $subed; 

http://www.php.net/manual/en/function.array-push.php#Hcom83388

中所述,它也快得多
© www.soinside.com 2019 - 2024. All rights reserved.