0

多次元配列があります。このような。

Array
(
    [38] => Array
        (
            [quantity] => 1
            [price] => 149
            [product_code] => 4578425
        )

    [39] => Array
        (
            [quantity] => 2
            [price] => 300
            [product_code] => 4578426 
        )

)

これらの値からクエリ文字列を作成したい

https://www.domain.com/checkout.php?PRODS=4578425,4578426&QTY=1,2&CART=1

4

3 に答える 3

1

ループを使わずに...

配列に配列があるため、可能だとは思いませんが、使用してimplodeも役に立ちません。しかし、ループを使用すると、そうです。

次のコードを使用します。

$prods = array();
$qty = array();
foreach ($array as $item)
{
    $prods[] = $item["product_code"];
    $qty[] = $item["quantity"];
}
echo 'https://www.domain.com/checkout.php?PRODS=', implode(',', $prods),'&QTY=', implode(',', $qty),'&CART=1';
于 2013-01-10T08:45:15.267 に答える
0

はい、方法はあると思います、

serialize を使用して文字列に入れ、unserialize して次のように配列に戻すことができます。

<?php

 $arr = Array
(
38 => Array
    (
        'quantity' => 1,
        'price' => 149,
        'product_code' => 4578425
    ),

39 => Array
    (
        'quantity' => 2,
        'price' => 300,
        'product_code' => 4578426 
    )

);


$newarr = 'https://www.domain.com/checkout.php?string=';
$newarr .= serialize($arr);

?>

次に、次の結果が得られます。

https://www.domain.com/checkout.php?string=a:2 :{i:38;a:3:{s:8:"数量";i:1;s:5:"価格"; i:149;s:12:"商品コード";i:4578425;}i:39;a:3:{s:8:"数量";i:2;s:5:"価格";i:300; s:12:"商品コード";i:4578426;}}a:2:{i:38;a:3:{s:8:"数量";i:1;s:5:"価格";i: 149;s:12:"商品コード";i:4578425;}i:39;a:3:{s:8:"数量";i:2;s:5:"価格";i:300;s: 12:"商品コード";i:4578426;}}

ループはありませんが、きれいではありません!!!

この内部 URL を使用する場合は、警告する必要があります。url get メソッドは、ID やその他のキー値などの短い情報のみを対象としています。URL が 2000 文字を超えると、ほとんどの Web サーバーで問題が発生します。それがあなたの意図であったかどうかはわかりません。

于 2013-01-10T09:19:32.470 に答える
0

implode()メソッドを使用できます

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone
于 2013-01-10T08:45:07.053 に答える