Php 依次在原始字符串的每个字母后生成带撇号的字符串
我如何迭代创建一个在每个字母后都有撇号的“Murrays”变体?最终结果应该是:Php 依次在原始字符串的每个字母后生成带撇号的字符串,php,string,Php,String,我如何迭代创建一个在每个字母后都有撇号的“Murrays”变体?最终结果应该是: "m'rrays,mu'rrays,mur'rays,murr'ays,murra'ys,murray's" 你想重复这个名字,然后用撇号重新打印吗?请尝试以下操作: <?php $string = "murrays"; $array = str_split($string); $length = count($array); $output = ""; fo
"m'rrays,mu'rrays,mur'rays,murr'ays,murra'ys,murray's"
你想重复这个名字,然后用撇号重新打印吗?请尝试以下操作:
<?php
$string = "murrays";
$array = str_split($string);
$length = count($array);
$output = "";
for ($i = 0; $i < $length; $i++) {
for($j = 0; $j < $length; $j++) {
$output .= $array[$j];
if ($j == $i)
$output.= "'";
}
if ($i < ($length - 1))
$output .= ",";
}
print $output;
?>
我的建议:
<?php
function generate($str, $add, $separator = ',')
{
$split = str_split($str);
$total = count($split) - 1;
$new = '';
for ($i = 0; $i < $total; $i++)
{
$aux = $split;
$aux[$i+1] = "'" . $aux[$i+1];
$new .= implode('', $aux).$separator;
}
return $new;
}
echo generate('murrays', "'");
?>
这里是另一个解决方案:
$str = 'murrays';
$variants = array();
$head = '';
$tail = $str;
for ($i=1, $n=strlen($str); $i<$n; $i++) {
$head .= $tail[0];
$tail = substr($tail, 1);
$variants[] = $head . "'" . $tail;
}
var_dump(implode(',', $variants));
$str='murrays';
$variants=array();
$head='';
$tail=$str;
对于($i=1,$n=strlen($str);$i这就是函数编程出现的原因
这段代码在OCAML和F#上工作,您可以轻松地使其在C上运行#
此代码返回原始单词作为列表的结尾,您可以解决以下问题:)开始:
$array = array_fill(0, strlen($string) - 1, $string);
implode(',', array_map(create_function('$string, $pos', 'return substr_replace($string, "\'", $pos + 1, 0);'), $array, array_keys($array)));
我想这是你的家庭作业?它是相同的用户昵称,但似乎不是相同的帐户。仍然;这个问题的用户是昨天的用户我想我误解了这个问题…@Tom:我投了一票,完全没有同情心。可能有点反感。我非常严厉地点击了鼠标。我想制作不同类型的字符串,比如m'urrays、mu'rray、mur'ray、mur'ays、murra'ys、murray's、murray's,murray's,那么如何使用php pl制作这种类型的字符串呢,如果数组的大小没有改变,不要在循环条件下使用count
。最好定义一个保存该值的变量。谢谢Gumbo。对不起,伙计们,我没有注意php标记!
$array = array_fill(0, strlen($string) - 1, $string);
implode(',', array_map(create_function('$string, $pos', 'return substr_replace($string, "\'", $pos + 1, 0);'), $array, array_keys($array)));