2017-11-18 104 views
0

我試圖動態地打印替代字符形式的兩個不同字符串。我做了下面的代碼,但它給了我「TrAaUuSt」這個輸出。但我想要「TrAaUuStIF」。我該如何解決這個問題?任何人都可以幫助我?先謝謝你。我是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> 

回答

1

你可以嘗試這樣的事:

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

+0

謝謝你#Michael K ..它的工作。但是,我可以打印輸出與我的代碼沒有錯誤? –

+0

很高興幫助。只需在原始文章中添加'isset($ _ POST ['submit'])''。我已經更新了這個例子。 –

0
<?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+$strlen1; $i++){   
      $new[] = $str1[$i]; 
      $new[] = $str2[$i];  
    } 


    }else 
    { 
    for($i = 0; $i<$strlen1+$strlen2; $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> 
+0

我嘗試這個,但它給出了抵消錯誤。 –