我有来自输入字段的数组,现在我想要生成各种值的组合以保存在数据库列中。
--------------------------------
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
最佳答案
您使用多个 for 循环,它将帮助您生成那种类型的组合。
例如:
for(int i=0;i<your array length;i++){
for(int j=0;j<i;j++){
//your code
}
}
或者试试下面的代码
function combinations($arrays, $i = 0) {
if (!isset($arrays[$i])) {
return array();
}
if ($i == count($arrays) - 1) {
return $arrays[$i];
}
// get combinations from subsequent arrays
$tmp = combinations($arrays, $i + 1);
$result = array();
// concat each array from tmp with each element from $arrays[$i]
foreach ($arrays[$i] as $v) {
foreach ($tmp as $t) {
$result[] = is_array($t) ?
array_merge(array($v), $t) :
array($v, $t);
}
}
return $result;
}
关于php - 如何合并数组值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39694179/