php sku属性,php-框架 - PHP数组遍历 sku属性值配对

$skuattr = Array

(

'7' => Array

(

'6' => '22x33',

'9' => '44x55',

),

'8' => Array

(

'12' => '大小号'

),

'9' => Array

(

'8' => '金属质',

'13' => '塑料',

),

'16' => Array

(

'14' => '圆形'

)

);

得到4个值

7:6;8:12;9:8;16:14;

7:9;8:12;9:8;16:14

7:6;8:12;9:13;16:14

7:9;8:12;9:13;16:14

因为键值是动态的,所以需要一个数组遍历的算法,得到结果,大神求助

回复内容:

$skuattr = Array

(

'7' => Array

(

'6' => '22x33',

'9' => '44x55',

),

'8' => Array

(

'12' => '大小号'

),

'9' => Array

(

'8' => '金属质',

'13' => '塑料',

),

'16' => Array

(

'14' => '圆形'

)

);

得到4个值

7:6;8:12;9:8;16:14;

7:9;8:12;9:8;16:14

7:6;8:12;9:13;16:14

7:9;8:12;9:13;16:14

因为键值是动态的,所以需要一个数组遍历的算法,得到结果,大神求助

原理就是要求笛卡尔积,写了一个简单的例子

phpfunction combineDika($data) {

$result = array();

foreach (array_shift($data) as $k=>$item) {

$result[] = array($k=>$item);

}

foreach ($data as $k => $v) {

$result2 = [];

foreach ($result as $k1=>$item1) {

foreach ($v as $k2=>$item2) {

$temp = $item1;

$temp[$k2] = $item2;

$result2[] = $temp;

}

}

$result = $result2;

}

return $result;

}

$skuattr = Array

(

'7' => Array

(

'6' => '22x33',

'9' => '44x55',

),

'8' => Array

(

'12' => '大小号'

),

'9' => Array

(

'8' => '金属质',

'13' => '塑料',

),

'16' => Array

(

'14' => '圆形'

)

);

$a = combineDika($skuattr);

print_r($a);

phpArray

(

[0] => Array

(

[6] => 22x33

[12] => 大小号

[8] => 金属质

[14] => 圆形

)

[1] => Array

(

[6] => 22x33

[12] => 大小号

[13] => 塑料

[14] => 圆形

)

[2] => Array

(

[9] => 44x55

[12] => 大小号

[8] => 金属质

[14] => 圆形

)

[3] => Array

(

[9] => 44x55

[12] => 大小号

[13] => 塑料

[14] => 圆形

)

)

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值