11

カスタム MVC フレームワーク用に作成した URL ルーターを完成させようとしています。URL から分析したパラメーターのリストがありますが、問題は数値キーしかないことです。私がやりたいことは、$params 配列の最初の値が KEY になり、配列の 2 番目の値が最初の KEY の VALUE になるように設定することです。しかし、私はそれをさらに超えていく必要があります。基本的に、配列内のすべての奇数キーの値を新しいキーにし、偶数キーの値を値にする必要があります。

例:

これは、現在の設定方法です。

Array
(
  [0] => greeting
  [1] => hello
  [2] => question
  [3] => how-are-you
  [4] => response
  [5] => im-fine
)

これは、必要な方法です(変換後):

Array
(
  [greeting] => hello
  [question] => how-are-you
  [response] => im-fine
)

URL 文字列から文字列を取り出すときに「/」区切り文字で文字列を分解すると、このタイプの配列を作成しやすくなりますか? もしそうなら、そのための最良の機能は何ですか?

これは一般的な問題だと確信しているので、おそらく簡単な解決策ですが、何か啓発はありますか?

4

7 に答える 7

11

多分それのために使用array_splice()しますか?

$result = array();

while (count($urls)) {
    list($key,$value) = array_splice($urls, 0, 2);
    $result[$key] = $value;
}

これにより、URL リストから最初の 2 つのエントリが抽出され、結果の配列のキーと値として使用されます。ソースリストが空になるまで繰り返します。

于 2011-12-14T08:32:41.243 に答える
1

何かのようなもの:

$data = array (
  'greeting',
  'hello',
  'question',
  'how-are-you',
  'response',
  'im-fine',
);

$new = array();

for ($i = 0, $lim = sizeof($data); $i < $lim; $i += 2) {
  $new[$data[$i]] = isset($data[$i + 1]) ? $data[$i + 1] : null;
}

print_r($new);
于 2011-12-14T08:34:08.670 に答える