2013-02-16 58 views
0

我處於原型階段。我在那page1.php中發送到頁面下方的鏈接:

http://localhost/sayfa.php?rd_dil=turkish&rd_sayfa=yazilar&rd_yazar=ali_uysal&rd_baslik=kalem_ucu" 
在此頁面

echo $_GET['rd_dil']作品和顯示turkish但回聲$ _GET [0]顯示Notice : Undefined offset: 0

,所以我想工作$ _GET以數字方式(數字索引)?我怎樣才能達到這個目標?我讀了php.net +堆棧溢出和谷歌搜索,但我無法解決我的問題。

+1

關聯數組;只讀。 – SparKot 2013-02-16 16:56:32

+0

然後有人通過'http://localhost/sayfa.php?rd_sayfa = yazilar&rd_dil =土耳其語&...'(交換第一個和第二個參數)訪問您的網站,一切都崩潰。 – DCoder 2013-02-16 17:00:24

+1

@DoSparKot只讀,它應該是,但你可以用它做任何你想要的 – 2013-02-16 17:00:41

回答

3

$ _GET是一個聯合陣列,以循環它:

foreach($_GET as $key=>$value) { 
    .... 
} 

萬一你萬t只能使用數值數組中的值,您可以使用:

$myData = array_values($_GET); 
// here you have a numeric array containing the $_GET values 
echo $myData[0]; 
+1

有人可以解釋倒票嗎?問題很簡單,這不是一個好主意,或者你爲什麼要這樣做。只是「如何轉移它」。 – 2013-02-16 17:08:15

-1

是的,你不能。這就是它的工作原理。
沒有這樣的索引。

儘管您不需要數字索引,但必須使用關聯密鑰。

有2個原因,你不應該翻譯您$ _GET到枚舉列表:

  • 參數順序不能保證。你使用字段名稱,而不是位置。
  • 這只是無用的浪費CPU。你想從你的枚舉數組中獲得的所有東西,你可以從原始的$ _GET中獲得。例如,使用foreach()來迭代它。

如果你仍然不知道如何正確處理$ _GET - 問這個問題,你會得到正確的答案。

+0

@你的常識所以,你可以請指導我如何將我的$ _GET傳遞給自定義數組如果我的$ _GET計數變化,所以我認爲用我的自定義數組我可以使用數字索引。 BR。 – 2013-02-16 16:57:40

+0

我不想在此頁上的任何位置投票;-) – SparKot 2013-02-16 16:58:15

2

由於$_GET是一個關聯數組,你可以將值賦給一個新的數組:

foreach($_GET as $key=>$val) { 
    $_GET2[] = $val; 
} 

或者你可以使用array_values通過axel.michel的建議:

$_GET2 = array_values($_GET); 
echo $_GET2[0]; 
+2

無需循環,array_values會執行此操作。 – 2013-02-16 16:58:13

0

您不能直接這樣做。但有一些解決方法:

$indexed = array_values($_GET); 
$first = $indexed[0]; 

$keys = array_keys($_GET); 
$first = $_GET[$keys[0]]; 

$first = current(array_slice(array('foo'), 0, 1)));