2015-04-22 104 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?但是你是对的,我只是没有问题,因为我把它叫做模型。 在我的代码中编辑名称。 –