0

假设我有一个类似的表:

Id Name Value1 Value2 Value3
1  Bla  1      5      1
2  Blu  4      0      2

如何在 PHP 中将其放入矩阵格式(或类似格式)以便我可以使用它?

我想对包含以下内容的部分进行一些计算和排序:

1  5  1
4  0  2

所以我可以订购并永久更改主矩阵。例如:

为每列分配 50%(或其他)的权重,然后将与较低值关联的列向左移动。

例子:

1*0.5 + 4*0.5 = 2.5
5*0.5 + 0*0.5 = 2.5
1*0.5 + 2*0.5 = 1.5

最终输出:

Id Name Value3 Value2 Value1
1  Bla  1      5      1
2  Blu  2      0      4

在 C 中这很容易做到,但在 PHP 中,我觉得这样做非常复杂,因为没有像 M[i,j] 这样的对象。

4

1 回答 1

0

您需要在查询的每次迭代中访问该列,您不能像使用行结果那样直接访问它:

$values = array();
$multiplier = 0.5;

foreach($result as $row) {
    $values[1] += $row['value1'] * $multiplier;
    $values[2] += $row['value2'] * $multiplier;
    $values[3] += $row['value3'] * $multiplier;
}

print_r($values);

但是,根据列的名称,您可以在 PHP 中循环遍历它们以定义变量或数组键,而不是手动进行(尤其是在您有很多列的情况下)。取决于您的列名。如果您有很多与数字等无关的批次,您可以遍历列名并从您的处理中排除某些列名,例如 id、name 等。在这种情况下,您将保留上面的第一行,插入一个变量来代替1and value1,并在使用运算符之前检查以确保数组键存在+=,因为如果尚未定义它通常会引发错误:

if(!array_key_exists($yourfield, $values))
    $values[$yourfield] = 0;
// continue...
于 2013-11-12T02:56:53.280 回答