我正在尝试动态打印两个不同字符串的替代字符。我做了下面的代码,但它给了我“TrAaUuSt”这个输出。但我想要“TrAuStIF”。我该如何解决这个问题?有人可以帮助我吗?先感谢您。我是 PHP 新手。如果您有更好的解决方案,请推荐我。
<?php
/*$str1 = "TAUSIF";
$str2 = "raut";
Output = TrAaUuSt*/
if(isset($_POST['submit']))
{
$str1 = $_POST['str1'];
$str2 = $_POST['str2'];
$strlen1 = strlen($str1);
$strlen2 = strlen($str2);
if($strlen1 > $strlen2)
{
for($i = 0; $i<$strlen2; $i++){
$new[] = $str1[$i];
$new[] = $str2[$i];
}
}
else
{
for($i = 0; $i<$strlen1; $i++){
$new[] = $str1[$i];
$new[] = $str2[$i];
}
}
foreach($new as $str){
echo $str;
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Print alternative character.</title>
</head>
<body>
<form action="" method="post">
<input type="text" name="str1" ><br><br>
<input type="text" name="str2" ><br><br>
<input type="submit" name="submit" value="Submit" >
</form>
</body>
</html>
最佳答案
你可以尝试这样的事情:
if(isset($_POST['submit']))
{
//$str1 = "TAUSIF";
//$str2 = "raut";
$str1 = $_POST['str1'];
$str2 = $_POST['str2'];
// SPLIT STRINGS TO ARRAY
$a1 = str_split($str1);
$a2 = str_split($str2);
$out = ''; // THE OUTPUT STRING
// CHECK WHICH STRING IS LONGEST
$count = (count($a1) > count($a2)) ? count($a1) : count($a2);
// LOOP BASED ON THE NUMBER OF CHARACTERS IN LONGEST STRING
for ($x = 0; $x <= $count; $x++) {
$out .= (isset($a1[$x])) ? $a1[$x] : '';
$out .= (isset($a2[$x])) ? $a2[$x] : '';
}
echo $out; // TrAaUuStIF
}
注意:
如果您需要 Unicode 支持,那么您应该考虑创建自己的 str_split
函数,如此处投票最高的评论中所述:http://php.net/str_split
关于javascript - 动态打印两个不同字符串中的替代字符串字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47366127/