簡體   English   中英

$ _GET中的foreach循環添加了奇怪的值

[英]foreach loop from $_GET is adding strange values

我有以下代碼,應該從有人安裝Facebook標簽時返回的URL創建以逗號分隔的字符串:

$tabs_added = $_GET['tabs_added'];
$tabs_added_array = array();
foreach($tabs_added as $key => $value){
    $tabs_added_array[] = $key;
}
$the_tabs = implode(',', $tabs_added_array);

該頁面由Facebook調用並返回,如下所示:

tabs.php?tabs_added[1202358366491085]=1&tabs_added[144695175064017]=1
&tabs_added[676066073448810]=1#_=_

由於某些奇怪的原因,它生成的字符串是:

1202358366491085,144695175064017,676066073448810,0,1,2

如您所見,開始是正確的,但隨后無緣無故地將0,1,2相加。 為什么會這樣,我該如何避免呢?

您的數組如下所示:

[0]=>[1202358366491085]
[1]=>[144695175064017]
[2]=>[676066073448810]

嘗試使用: var_dump($tabs_added_array); 在foreach之后。

字符串同時獲得。 您顯示的代碼雖然不會產生數組的索引。

我已經對此進行了測試,這是我擁有的URL:

test.php?
tabs_added[1202358366491085]=1&tabs_added[144695175064017]=1
&tabs_added[676066073448810]=1#_=_

而我的代碼:

$tabs_added = $_GET['tabs_added'];
$tabs_added_array = array();
foreach($tabs_added as $key => $value){
    $tabs_added_array[] = $key;
}
$the_tabs = implode(',', $tabs_added_array);
var_dump($tabs_added_array);

無論您是否知道,您的代碼中肯定還有其他內容沒有向我們顯示。

我最終這樣做是為了解決我的問題:

foreach($tabs_added_array as $key => $val) {
    if(strlen($val) <= 3)
        unset($tabs_added_array[$key]);
}

是的,這是一個骯臟的解決方法。 但是我不知道該怎么辦。 它沒有解決問題,但這是一個解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM