2015-04-22 108 views
-2

我已經轉換一個字按規定到陣列,做了一些功能現在又把我想將它轉換回。當我在echo上添加一箇中斷時,我發現它仍然作爲一個數組。轉換陣列字

$word='someword'; 
$arr= str_split($word); 
foreach ($arr as $value) 
echo $words =chr(ord($value)+2).'<br>'; 

的上述結果是

u q o g y q t f 

我做了一個函數來檢查我的要求是否得到滿足。

失敗

請幫幫忙,我已經試過破滅合併加入

if($words!='uqogyqtf'){ 
echo 'failed'; 
}else{ 
echo 'Okay'; 
} 
+0

那麼,什麼是你的問題現在? – Rizier123

+0

我想要一個單詞,如$ new_word ='newword'; ,現在它是數組(n,e,w,w,o,r,d);原始代碼中的 –

+0

$字實際上只是最後一個字符「f
」。你真正想要的是'$ words [] = chr(ord($ value)+2);' – Augwa

回答

2

取出代碼中的換行符並連接變量,它應該可以正常工作。

$word='someword'; 
$arr= str_split($word); 
$words = ''; 
foreach ($arr as $value) 
    $words .=chr(ord($value)+2); 
echo $words; 
if($words!='uqogyqtf'){ 
    echo 'failed'; 
}else{ 
    echo 'Okay'; 
} 

輸出繼電器(取出echo $words;只能有 「好的」):

uqogyqtfOkay

+0

非常感謝chris85。對我來說工作得很好 –

3

你的代碼應該是:

$word='someword'; 
$arr= str_split($word); 
$words = []; 
foreach ($arr as $value) { 
     $words[] =chr(ord($value)+2); 
} 
echo implode('', $words); 

在您的代碼中某個點$words一次只包含字符,而不保留以前的值。

+0

你試過了你在這裏粘貼的內容......它給出了錯誤 –

+0

數組聲明是錯誤的。也不需要數組,'$ words =''; foreach($ arr as $ value){ $ words。= chr(ord($ value)+2); } echo $ words;' – chris85

+0

從PHP 5.4開始,您可以使用短符號來聲明數組.. [] – Anti

0
function convertword($word) 
{ $myarray = str_split($word); 
    foreach ($myarray as $key => $value) 
    { $mynewarray[$key] = chr(ord($myarray[$key])+2); 
    } 
    $newword = implode("", $mynewarray); 
    return $newword; 
} 

這對我的作品:)

+0

不能重新聲明implode()...... –

+0

那麼只需重新命名它,hm?但是你是對的,我只是沒有問題,因爲我把它叫做模型。 在我的代碼中編輯名稱。 –