【问题标题】:Making anagram from two words in php用php中的两个单词制作字谜
【发布时间】:2020-09-26 16:28:40
【问题描述】:

例如:a)首先我们从两部分组成一个词

$word1 = 'bel';
$word2 = 'grade';
$newWord = 'belgrade';

b)现在我应该用这个单词来做字谜,其中两个单词的字母一个接一个地交替'belgrade -> bgerlade

我用 2 个 for 循环做到了这一点,但我需要自动化解决方案:

 $arr = ['b','e','o', ''];
     $arr1 = ['g', 'r', 'a', 'd'];

    for($i = 0; $i<count($arr); $i++)
    { for($i = 0; $i<count($arr1); $i++)     
{
         if ($i % 2 == 0)
         {
         echo $arr[$i] . $arr1[$i] . PHP_EOL;
         }     
    if ($i % 2 != 0)
        {
            echo $arr[$i] . $arr1[$i] . PHP_EOL;
         }

     }
     }

【问题讨论】:

  • 你引用的例子替换了前几个字符,但都以ade结尾

标签: php automation anagram


【解决方案1】:

此代码以两个字符串开头。然后它使用str_split() 将它们拆分为单个字符数组。

然后它在剩下一些内容时循环,并从第一个数组(如果有)添加 1 个字符,与第二个数组相同。每次使用array_shift() 都会从数组中取出第一个元素,因此两者都会返回下一个字符并将其从数组中删除。使用.= 将其添加到输出...

$word1 = 'bel';
$word2 = 'grade';

$arr1 = str_split($word1);
$arr2 = str_split($word2);

$output = '';
while( count($arr1)  || count($arr2) )  {
    if ( count($arr1) ) {
        $output .= array_shift($arr1);
    }
    if ( count($arr2) ) {
        $output .= array_shift($arr2);
    }
}
echo $output;

【讨论】:

    猜你喜欢
    • 2018-06-07
    • 2014-09-03
    • 2011-05-13
    • 2013-02-09
    • 1970-01-01
    • 2015-05-04
    • 1970-01-01
    • 2017-10-09
    • 2016-02-01
    相关资源
    最近更新 更多