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

不使用循环...

我不认为 AFAIK,这是可能的,因为数组中有数组,所以使用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

你可以使用implode()方法

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

是的,我认为有一种方法,

您可以使用序列化将其放入字符串中,然后反序列化以将其返回到如下数组:

<?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:"product_code";i:4578425;}i:39;a:3:{s:8:"数量";i:2;s:5:"价格";i:300; s:12:"product_code";i:4578426;}}a:2:{i:38;a:3:{s:8:"数量";i:1;s:5:"价格";i: 149;s:12:"product_code";i:4578425;}i:39;a:3:{s:8:"数量";i:2;s:5:"价格";i:300;s: 12:“产品代码”;我:4578426;}}

没有循环,但它不漂亮!!!

如果你想在 url 中使用这个,我必须警告你。url get 方法仅适用于短信息,如 id 或其他键值。如果您的网址超过 2000 个字符,大多数网络服务器都会遇到问题。不确定这是否是你的意图。

于 2013-01-10T09:19:32.470 回答