使用PHP,假设我有这样一个字符串:
$letters = "abcde";
我想在每个字符之间添加字符"7",但它只出现一次。结果应该是如下所示的数组:
$lettersArray = array(
7abcde,
a7bcde,
ab7cde,
abc7de,
abcd7e,
abcde7
);
注意:$letters的长度是动态的,从1到12个字符
我已经尝试使用循环与array_splice和str_split与内爆,但我不能完全找出正确的逻辑。
这很简单,就像这样做
echo implode("+", str_split('vimal')); // OUTPUT : v+i+m+a+l
祝你今天愉快
试试这个:
$letters ='abcdefghi';
$lettersArray = array();
for($i=0;$i < strlen($letters)+1; $i++) {
$new = substr($letters, 0, $i);
$new .= '7';
$new .= substr($letters, $i);
$lettersArray[] = $new;
}
print_r($lettersArray);
它的作用是取数组的每个元素,并以递增的方式将字母7插入数组项中。
$split_letters = str_split($letters);
$letters_array = array();
for($i = 0; $i <= count($split_letters); $i++) {
$start_letters = array_slice($split_letters, 0, $i);
$end_letters = array_slice($split_letters, $i);
$letters_array[] = array_merge($start_letters, array(7), $end_letters);
}
经过2个小时(包括写这个问题),我终于也想出了一个类似于其他人在这里发布的解决方案。它张贴在下面,但我更喜欢其他的解决方案张贴在这里。
$letters = "abcde";
$results = array();
$lettersArray = str_split($letters);
foreach ($lettersArray as $key => $lets) {
$tempArray = $lettersArray;
array_splice($tempArray, $key, 0, "7");
$results[] = implode($tempArray);
}
$results[] = $letters . "7"; //required for the final combination
print_r($results);
试试这个
$letters = "abcde";
$character = "7";
$len = strlen($letters);
$lettersArray = array();
for($i=0; $i <= $len; $i++)
{
$temp = "";
$temp = substr($letters, 0, $i) . $character . substr($letters, $i);
$lettersArray[] = $temp;
}
http://codepad.viper - 7. - com/gfbyjb