2014-08-29 72 views
-4
<?php 
$string1 = "AMITABH BACHAN"; 
$string2 = "RAJNIKANTH"; 
$stringParts1 = str_split($string1); 
$stringParts2 = str_split($string2); 
for ($i = 0 ; $i < strlen($string1); $i++) 
for ($j = $i ; $j < strlen($string2); $j++) { 
if ($stringParts1[$i]==$stringParts2[$j]) { 
echo $string1[$i] + '\n'; 
} 
} 
?> 

我在这做错了什么?在IDEONE上,它不产生输出。在PHP Designer 8上输出000000为什么这个PHP代码输出000000?

+0

你的阵列是$ stringParts1,但你正在访问$字符串1 [$ i]中。 – 2014-08-29 16:40:27

回答

3

基本PHP语法:Strings.连接。你做MATH

echo $string1[$i] + '\n'; 
        ^--- 

另外,您的\n是毫无意义的。 '\n'是两个字符:\n"\n"是一个换行字符。

你想

echo $string1[$i] . "\n"; 

代替

+1

还应该注意,没有括号的速记循环仅适用于后面的单行代码,在这种情况下,OP有几个。这不会按预期工作。 – steve 2014-08-29 16:40:07

+1

@steve:是的,代码的丑陋。但内部循环确实有{},所以它实际上是一个单线程无论如何。 – 2014-08-29 16:42:28

+0

啊!你是正确的先生!我没在想。 – steve 2014-08-29 17:05:54