如何在字符串中的每个元素之间插入单个字符以获得选项数组


How to insert a single character between each element in a string to have an array of options

使用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