0

在 stackoverflow 上搜索其他答案的结果很好后,第一次在这里发帖。我在尝试构建的应用程序中遇到了障碍。它涉及使用从数据库中提取的动态值用 JS 绘制图形。

我现在拥有使用 javascript 库绘制图形所需的所有值。绘制图形的基本要求是一个看起来像这样的基本数组:

var plot1 = [ [2,15], [4,23], [5,25] ];

在我的 [x,y] x = 日期和 y = 点击的情况下。有了这些数据,您可以像这样调用函数:

$.plot($("#placeholder"), [ plot1 ];

这为您完成了所有工作并构建了一个漂亮的小图表。就我而言,我动态地完成所有这些。这就是我卡住的地方。我有一个在打印时输出这个的数组:

Array ( 
    [0] => var test7 = [[1, 1]]; 
    [1] => var test2 = [[1, 1]]; 
    [2] => var test2 = [[4, 1]]; 
    [3] => var test2 = [[15, 2]]; 
    [4] => var test1 = [[2, 1]]; 
    [5] => var test1 = [[6, 7]]; 
    [6] => var test1 = [[14, 1]]; 
    [7] => var test1 = [[15, 1]]; 
    [8] => var giver = [[3, 2]]; 
    [9] => var giver = [[14, 1]]; 
    [10] => var test4 = [[4, 1]]; 
);

我现在需要做的是将所有包含相同 linkId 的值(例如 test2 有 3 个实例)组合到一行中。这是我需要数组的样子:

Array ( 
    [0] => var test7 = [[1, 1]]; 
    [1] => var test2 = [ [1, 1], [4, 1], [15, 2] ]; 
    [4] => var test1 = [ [2, 1], [6, 7], [14, 1], [15, 1] ]; 
    [8] => var giver = [ [3, 2], [14, 1] ]; 
    [10] => var test4 = [[4, 1]]; 
);

从那时起,我可以在它上面运行一个 foreach 并回显脚本标签内的值,我们就可以开始运行了!

建议?我知道不会有一个内置函数可以一举完成我需要的一切。array_unique() 很接近,但不是我需要的。我想我可以使用 array_walk($array, callback) 它接受一个数组和一个在数组中的每个值上执行的回调函数,但我真的不确定从那里去哪里。

任何帮助是极大的赞赏!

4

2 回答 2

2
$array = array( 
  'var test7 = [[1, 1]];', 
  'var test2 = [[1, 1]];', 
  'var test2 = [[4, 1]];', 
  'var test2 = [[15, 2]];', 
  'var test1 = [[2, 1]];', 
  'var test1 = [[6, 7]];', 
  'var test1 = [[14, 1]];', 
  'var test1 = [[15, 1]];', 
  'var giver = [[3, 2]];', 
  'var giver = [[14, 1]];', 
  'var test4 = [[4, 1]];' 
);

foreach ($array as $val) {
  preg_match('~var ([^ ]+) = \[\[([^\]]+)~',$val,$var);
  $tArray[$var[1]][] = "[".$var[2]."]";
}
$array = array();
foreach ($tArray as $key => $val) {
  $array[] = 'var '.$key.' = ['. implode(',',$val) . '];';
}
于 2011-02-08T00:09:11.950 回答
0

你知道你可以在 Javascript 中使用字符串作为数组索引吗?

所以你可以做类似...(伪代码顺便说一句)

final = array();
final[arrayWithData->Key] += arrayWithData->value
于 2011-02-08T00:04:01.990 回答