2016-07-26 104 views
0

我想执行回文计划在PHP中,我从变量“名称”中的1个文件的输入和第二个文件它检查天气输入字符串是否回文......它工作正常,但我得到通知,它说 “注意:用C 4:未定义抵消\ XAMPP \ htdocs中\ pali.php第9行”注意:未定义的偏移量:4在PHP文件

<?php 
$name = $_POST["name"]; 
echo "String: " . $name; 
$myArray = array(); // php array 
$myArray = str_split($name); //split the array 
$len = sizeof($myArray); // get the size of array 
$newString = " "; 
for ($i = $len; $i >= 0; $i--) { 
    $newString.= $myArray[$i]; 
} 
echo "<br>"; 
if ($name == $newString) { 

    $lambi = strlen($name); 
//loop through it and print it reverse 
for ($i = $lambi - 1; $i >=0;$i--) 
{ 
    echo "Output: " . $name . " is a palindrome"; 
    echo $name[$i]; 
} 
} 
else { 
    echo "Output: " . $name . " is not a palindrome"; 
} 
?> 

错误是在这条线$ newString。 = $ myArray [$ i];

+0

你能告诉我你在发表什么名字吗? –

回答

2

For循环应当开始从$len-1

如果$name="aabbaa"然后$len将是6,但$myArray仅具有从0到5(总共6)

$len = sizeof($myArray); // get the size of array 
$newString = " "; 
for ($i = ($len-1); $i >= 0; $i--) { // it should be ($len-1) 
    $newString.= $myArray[$i]; 
} 
+0

对不起,几乎相同的答案! +1 – Danielius

+0

Jayesh Buddy它的工作非常感谢 – anonymous

0

我认为问题在于,阵列计数索引从0 [0,1,2,3]开始,你从sizeof得到的值从1(1,2,3,4)开始计数。所以,你需要使用$len = sizeof($myArray)-1;来得到你想要的。

0

$len = sizeof($myArray);返回数组的大小,但PHP数组的索引为0。

你应该使用$len = sizeof($myArray)-1;