php:如何将列数组转换为行数组?

时间:2018-04-10 14:39:48

标签: php arrays transpose

我有一个带有html输入文本字段表的表单。提交表单时,它会将值保存到列数组中。但我需要将表数据存储为数组或行,以便稍后显示。

那么如何将单独的列值数组转换为行数组的2D数组呢?所有列长度都相同。

html输入文本字段表(例如<input type="text" name="name[]" />):

a b c (where a = name[0], b = qty[0], c = price[0])
d e f (where d = name[1], e = qty[1], f = price[1])
g h i (where g = name[2], h = qty[2], i = price[2])
etc...

我提交表单提交的数组:

col1: array(a, d, g, etc...)
col2: array(b, e, h, etc...)
col3: array(c, f, i, etc...)

我需要将以下内容存储在我的数据库中:

array(array(a, b, c), array(d, e, f), array(g, h, i), etc...)

另外,如何将数组数组存储在数据库中?以什么形式? BLOB?

谢谢。

1 个答案:

答案 0 :(得分:0)

假设你有一个像这样的数组

$a = [[1,2,3],[4,5,6],[7,8,9]];

获取方式

$b = [[1,4,7], [2,5,8], [3,6,9]];

将是

$a = [[1,2,3],[4,5,6],[7,8,9]];
$b = [];
for($i=0;$i<3;$i++){
    $toAppend = [];
    for($j=0;$j<3;$j++){
        $toAppend[] = $a[$j][$i];
    }
    $b[] = $toAppend;
}

不是最优雅,但它有效。