2016-07-26 113 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;