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が、echo $_GET[0] が表示されますNotice : Undefined offset: 0

だから私は $_GET を数値的に(数値インデックス)で操作したいですか?どうすればこの目的を達成できますか? php.net + スタック オーバーフローを読んでググったのですが、問題を解決できませんでした。

4

4 に答える 4

3

$_GET は連想配列で、ループします:

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

数値配列の値のみが必要な場合は、次を使用できます。

$myData = array_values($_GET);
// here you have a numeric array containing the $_GET values
echo $myData[0];
于 2013-02-16T16:57:25.297 に答える
2

は連想配列であるため$_GET、値を新しい配列に割り当てることができます。

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

array_valuesまたは、axel.michel の提案に従って使用できます。

$_GET2 = array_values($_GET);
echo $_GET2[0];
于 2013-02-16T16:56:10.843 に答える
0

それを直接行うことはできません。ただし、いくつかの回避策があります。

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

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

$first = current(array_slice(array('foo'), 0, 1)));
于 2013-02-16T16:59:25.613 に答える
-1

はい、できません。それがまさにそれがどのように機能するかです。
そのようなインデックスはありません。

ただし、数値インデックスは必要ありませんが、連想キーを使用する必要があります。

$_GET を列挙型リストに変換してはならない理由が 2 つあります。

  • パラメータの順序は保証されません。位置の代わりにフィールド名を使用する必要があります。
  • それは無駄な CPU の浪費です。列挙された配列から必要なものはすべて、元の $_GET から取得できます。foreach()たとえば、それを繰り返すために使用します。

$_GET を適切に処理する方法がまだわからない場合は、まさにこの質問をしてください。適切な答えが得られます。

于 2013-02-16T16:55:06.910 に答える