我有输入字段的数组,现在我想要的是生成各种值组合以保存在数据库colunm中.
--------------------------------
id | value
--------------------------------
1 8,12,7,11
2 8,15,7,11
3 9,12,7,11
4 9,15,7,11
5 13,12,7,11
6 13,15,7,11
$first = $this-> input-> post(‘product_variant’);
Array
(
[12] => Array
(
[0] => 8
[1] => 9
[2] => 13
)
[13] => Array
(
[0] => 12
[1] => 15
)
[15] => Array
(
[0] => 7
)
[16] => Array
(
[0] => 11
)
)
现在我想要生成组合像:
8,12,7,11
8,15,7,11
9,12,7,11
9,15,7,11
13,12,7,11
13,15,7,11
解决方法:
这是笛卡尔积.您可以使用此功能
function cartesian($arr,$str = array()){
$first = array_shift($arr);
if(count($str) > 1) {
foreach ($str as $k => $val) {
foreach ($first as $key => $value) {
$str2[] = $val.','.$value;
}
}
}else{
foreach ($first as $key => $value) {
$str2[] = $value;
}
}
if(count($arr) > 0){
$str2 = cartesian($arr,$str2);
}
return $str2;
}
希望可以帮到你.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。