2011-11-13 95 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對於實際給出一個完整的例子 –