2017-02-25 141 views
-1

我有點被卡住了。 我想爲產品變型樣訂做網址:將數組作爲URL參數傳遞給組合

&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

Hello @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