php 无法输出四维数组,php – 无法正确创建数组

我的问题有点长,所以请耐心等待

我有2个表产品和购物车.我加入了2个表并创建了一个单个数组,但是这个数组的一部分我没有正确获取数据.产品尺寸表有4种尺寸(小,中,大,每件)的产品.

我从2个表中得到的数组就像下面的数组一样,这里的主要部分是4个数组: – size,cost,purchasesize,purchasequantity 0索引值应保留为small,1为medium 2为large和3为perpiece.

Array

(

[0] => Array

(

[productid] => 1

[size] => Array

(

[0] => small //reserved for small

[1] => medium //reserved for medium

[2] => large //reserved for large

[3] => 0 //reserved for perpiece

)

[cost] => Array

(

[0] => 10 //reserved for small

[1] => 20 //reserved for medium

[2] => 30 //reserved for large

[3] => 0 //reserved for perpiece

)

[purchasedsize] => Array

(

[0] => small //reserved for small

[1] => 0 //reserved for medium

[2] => large //reserved for large

[3] => 0 //reserved for perpiece

)

[purchasedquantity] => Array

(

[0] => 2 //reserved for small

[1] => 0 //reserved for medium

[2] => 3 //reserved for large

[3] => 0 //reserved for perpiece

)

)

)

问题是这种定位适用于阵列尺寸和成本,但在购买尺寸,购买数量,如果购物车有尺寸perpiece的产品,那么它转移到索引值0

数组变得如下所示,但在购买数量和购买数量下,应该是指数值3

Array

(

[0] => Array

(

[productid] => 2

[size] => Array

(

[0] => 0

[1] => 0

[2] => 0

[3] => perpiece

)

[cost] => Array

(

[0] => 0

[1] => 0

[2] => 0

[3] => 40

)

[purchasedsize] => Array

(

[0] => perpiece

[1] => 0

[2] => 0

[3] => 0

)

[purchasedquantity] => Array

(

[0] => 1

[1] => 0

[2] => 0

[3] => 0

)

)

)

产品化表

id productid prodsize cost

1 1 small 10

2 1 medium 20

3 1 large 30

4 2 perpiece 40

购物车表

id productid prodsize prodcost quantity

1 1 small 10 2

2 1 large 30 3

3 2 perpiece 40 1

我正在使用的代码是

$sql= "SELECT p.productid, GROUP_CONCAT(p.prodsize ORDER BY p.id ASC) as size, GROUP_CONCAT(p.cost ORDER BY p.id ASC) as cost, GROUP_CONCAT(c.prodsize,'-',c.quantity) as cart_details, GROUP_CONCAT(DISTINCT(c.userid)) as user_id FROM productsize p LEFT JOIN cart c ON(c.productid = p.productid AND p.prodsize = c.prodsize) GROUP BY p.productid ORDER BY user_id DESC, p.productid ASC";

$result = mysql_query($sql);

if (mysql_num_rows($result) > 0)

{

$i = 0;

while($row = mysql_fetch_assoc($result))

{

$rows[$i]['productid'] = $row['productid'];

$final_size = array_fill(0, 4, '0');

$final_cost = array_fill(0, 4, '0');

$size = explode(',', $row['size']);

$cost = explode(',', $row['cost']);

foreach($size as $k=>$sizecol) {

switch($sizecol) {

case 'Small':

$array_key = '0';

break;

case 'Medium':

$array_key = '1';

break;

case 'Large':

$array_key = '2';

break;

case 'Perpiece':

$array_key = '3';

break;

}

$final_size[$array_key] = $sizecol;

$final_cost[$array_key] = $cost[$k];

}

$cart_details = explode(',', $row['cart_details']);

$purchasedsize = array_fill(0, 4, '0');

$purchasedquantity = array_fill(0, 4, '0');

foreach($cart_details as $cart) {

if($cart != '') {

$details = explode('-', $cart);

$key = array_search($details[0], $size);

$purchasedsize[$key] = $details[0];

$purchasedquantity[$key] = $details[1];

}

}

$rows[$i]['size'] = $final_size;

$rows[$i]['cost'] = $final_cost;

$rows[$i]['purchasedsize'] = $purchasedsize;

$rows[$i]['purchasedquantity'] = $purchasedquantity;

$rows[$i]['userid'] = $row['user_id'];

$i++;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值