2017-02-25 71 views
-1

私はちょっとここにぎっしり詰まっています。 私はのような製品バリエーションのためのURLを構築しようとしている:あなたは私の希望を達成するための別の方法を提案することができれば、どのように私はまた配列をURLパラメータとして渡す

上記のように1つの文字列に配列のキーを組み合わせることができます

&brand=6&color=11,12,etc 

結果。 ありがとうございます!

+1

論理を説明できますか? – C2486

+0

また、質問を編集して、入力配列を['var_export'](http://php.net/manual/en/function.var-export.php)の形式で表示することもできますか?そうすれば、人々は簡単にコピー&ペーストして、実際のテスト例を作成するための基礎を得ることができます。 – CBroe

+0

私はちょっと具体的に編集します –

答えて

0

まず、「ブランド」の値と「色」の値を組み合わせる必要があります。その後、あなたが一緒に出力することができ:

<?php 

$columns = [ 
    'brand' => [ 
     ['b1A', 'b1B'], 
     ['b2A', 'b2B'], 
    ], 
    'color' => [ 
     ['c1A', 'c1B'], 
     ['c2A', 'c2B'], 
    ], 
]; 

$data = []; 
foreach ($columns as $title => $rows) { 
    foreach ($rows as $id => $values) { 
     if (!isset($data[$id])) { 
      $data[$id] = []; 
     } 

     $data[$id][$title] = $values; 
    } 
} 

foreach ($data as $row) { 
    $output = ''; 
    foreach ($row as $key => $values) { 
     $output .= '&' . $key . '=' . implode(',', $values); 
    } 

    echo $output . '<br/>' . PHP_EOL; 
} 
+0

こんにちは@ckappelhoff、あなたの答えに感謝します。私の投稿を確認できますか?私は完全なコードで編集しました。 –

0
<?php 
$filters = [ 
    "brand" => [ 
     1 => "Adidas", 
     2 => "Puma" 
    ], 
    "color" => [ 
     1 => "White", 
     2 => "Blue", 
     3 => "Red", 
     4 => "Yellow" 
    ] 
]; 


foreach($filters['brand'] as $key => $val){ 
    foreach($filters['color'] as $k => $v){ 
     echo "brand=$key,$val&color=$k,$v" . PHP_EOL; 
     echo "brand=$val&color=$v" . PHP_EOL; 
    } 
} 

出力

brand=1,Adidas&color=1,White 
brand=Adidas&color=White 
... 

例2;

foreach($filters['brand'] as $key => $val){ 
    echo "&brand=$key,$val&color=" . implode(',',$filters['color']) . PHP_EOL; 
} 

&brand=1,Adidas&color=White,Blue,Red,Yellow 
&brand=2,Puma&color=White,Blue,Red,Yellow 
関連する問題