0

「$key => $value」ペアを使用して配列を反復処理したいが、最後から 2 つ後の項目まで移動したい。foreach またはその他の関数を使用してそれがどのように実行できるかを知りたいです。

やりたい理由はここにあります。私の配列のキーは URL パラメータで、値はそのパラメータの値です。ここで、key1=value1&key2=value2&key3=value3 として URL クエリを作成します。

各キー値の間に区切り文字「&」を追加しますが、最後には追加しません。そのためには、区切り記号を付けて最後の 2 つ前の項目に移動し、最後の項目の区切り記号を空白文字列に変更したいと考えました。

では、foreach を使用して最後から 2 つ前の項目に移動する方法、またはより良い解決策を得る方法を教えてください。ありがとう。

4

1 に答える 1

3

使用する方が良いhttp_build_query

   <?php
   $data = array('foo'=>'bar',
          'baz'=>'boom',
          'cow'=>'milk',
          'php'=>'hypertext processor');

   echo http_build_query($data) . "\n";
   // Output : foo=bar&baz=boom&cow=milk&php=hypertext+processor

   echo http_build_query($data, '', '&amp;');
   // Ouput: foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor

   ?>

http://php.net/manual/en/function.http-build-query.php

foreachループの使用(非推奨)

   <?php
   $ar_qs = array();
   foreach ($data as $key => $value) {
     $ar_qs[] = "$key=". urlencode($value);
   }
   echo $query_string = implode("&", $ar_qs);
   ?>
于 2013-05-24T04:00:49.667 に答える