php - 如何合并数组值?

标签 php mysql arrays

我有来自输入字段的数组,现在我想要生成各种值的组合以保存在数据库列中。

--------------------------------
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/

相关文章:

java - MySQL数据库无法插入数据

arrays - 如何在 GO 中传递任意大小的多维数组作为函数参数

php - 如何使用 DOMPDF 下载 pdf 格式的完整 HTML 页面?

php - for 循环和 while 循环中的变量范围

php - 复选框而不是 PHP、MySQL 中的下拉列表

mysql - sql 中的键仍会保留 View 中的键吗

Javascript:如何最有效地将数组连接成小于 64 个字符的 block ?

arrays - 如何确定数组的长度?

php - 直接打印 PDF 文件中的网页

php - 递归函数,仅显示父级、子级和兄弟级的动态菜单