2013-04-16 32 views
0

我想連接數組前面的字符「/ \ b」$ stopwords,並在後面連接字符「\ b/i」。未定義的偏移量在自己的幫手codeigniter中

我的助手

function addRegex_SW($arrayIn = array()){ 
    $arrayOut = array(); 
    $count = count($arrayIn); 
    for ($i = 1; $i <= $count; $i++) 
    { 
     $char1 = "/\b"; 
     $char2 = "\b/i"; 
     $arrayOut[$i] = $char1.$arrayIn[$i].$char2; 
     //echo $arrayOut[$i]; 
    } 
return $arrayOut; 
} 

我的觀點

$stopwords_Regex = addRegex_SW($stopwords); 

然後,當我運行代碼

A PHP Error was encountered 
Severity: Notice 
Message: Undefined offset: 317 
Filename: helpers/addRegex_helper.php 
Line Number: 11 

哪條線是

$arrayOut[$i] = $char1.$arrayIn[$i].$char2; 

我確定我有谷歌它,但我沒有得到它。 感謝

回答

1

for -loop是的off-by-一個

變化:for ($i = 1; $i <= $count; $i++)

要:for ($i = 0; $i < $count; $i++)

+0

oh 我忘記了數組索引必須從0開始,謝謝 – mhabibi

0

你並不需要,而不是使用,使用的foreach:

function addRegex_SW($arrayIn = array()) { 
    $arrayOut = array(); 
    foreach ($arrayIn as $value) { 
     $arrayOut[] = '/\b' . $value . '\b/i'; 
    } 
    return $arrayOut; 
} 
+1

感謝您糾正循環 – mhabibi