2011-11-13 96 views
0

我'执行代码:PHP:的foreach警告

<?php 
$input="ABC123"; 
$splits = chunk_split($input,2,""); 
foreach($splits as $split) 
{ 
$split = strrev($split); 
$input = $input . $split; 
} 
?> 

和输出,我希望是:

BA1C32 

但gaves我警告。

Warning: Invalid argument supplied for foreach() in /home/WOOOOOOOOHOOOOOOOO/domains/badhamburgers.com/public_html/index.php on line 4 
+1

你可以先做'print_r($ splits)' –

+1

chuck_split返回一个字符串,你不能对字符串做foreach – malletjo

回答

5

chunk_split不会返回数组,而是返回字符串的一部分。

您应该使用str_split代替:

$input="ABC123"; 
$splits = str_split($input, 2); 

而且不要忘记你的$input循环之前重置,否则它将包含旧的数据以及。

+0

不要忘了重置你的输入或改变你的变量名称。 – malletjo

+0

谢谢!这真的很有用。 – Damkus

1

它看起来像http://php.net/manual/en/function.chunk-split.php返回一个字符串,而不是一个数组。您可以使用str_split代替:

$input = "ABC123"; 
$splits = str_split($input, 2); 
$output = ""; 
foreach($splits as $split){ 
    $split = strrev($split); 
    $output .= $split; 
} 
+0

+1对于实际给出一个完整的例子 –