我嘗試的foreach對來自爆炸()PHP爆炸陣列的foreach
我有此數組:的foreach之前
$links = " http://hi.co.il<br>
ht tp://hi.co.il<br>
http://hi.co.il<br>
http://hi.co.il<br>
http://hi.co.il<br>
http://mega.co.il<br>
http://hi.co.il";
$links = explode('<br>',trim($links));
//$links = preg_replace('/\s+/', '', $links);
$currenturl = "http://mega.co.il";
//if(($key = array_search($currenturl, $links)) !== false) {
// unset($links[$key]);
//}
foreach($links as $key => $value):
if($value == $currenturl):
unset($links[$key]);
endif;
endforeach;
print_r($links);
$鏈接印刷:印刷
Array ([0] => http://hi.co.il [1] => ht tp://hi.co.il [2] => http://hi.co.il [3] => http://hi.co.il [4] => http://hi.co.il [5] => http://mega.co.il [6] => http://hi.co.il)
$鏈接在以後:
http://hi.co.il ht tp://hi.co.il http://hi.co.il http://hi.co.il http://hi.co.il http://mega.co.il http://hi.co.il
爲什麼foreach從數組中返回到字符串? 我想檢查與foreach,如果它的當前url然後從數組中取消設置,我是新手,我可以使它與array_search工作,但我想用foreach做到這一點。
感謝您的回答,並對不好的英語感到抱歉。
[我無法重現該問題](http://sandbox.onlinephpfunctions.com/code/70650a75b725b007f1cb6f0b1855f98f4e337487)。你有可能幫助重現它嗎? – showdev
如果你在原始'$ links'字符串中有換行符,你可能想要在循環的每次迭代中調用'$ value = trim($ value)'。否則,換行符將成爲每個字符串的一部分,而不是完全匹配。初始修剪只會刪除整個字符串中的空格,而不是結果數組中的每個值。 –