如果我有这样的数组:
var phpintojsArray = [["1","20"]];
和...我也有一个multid-array:
var data = [[1,20], [4, 20], [7, 55], [9, 10], [9, 10]];
如何将phpintojsArray添加到数据数组中?我想要:
var data = [[phpintojsArray], [1,20], [4, 20], [7, 55], [9, 10], [9, 10]];
实现这一目标的一种方法是什么?
澄清 - 试图操纵图表中的数据
这有效:
/* Bar Chart */
var data = [[1, 10],[3, 60], [5, 20], [7, 50], [9, 10]];
// Initialize Bars Chart
$.plot(BarChart, [
{ data: data, bars: { show: true, fillColor: { colors: [{ opacity: 1 }, { opacity: 1 }] } }, label: 'Example label' } ],
{
legend: {
backgroundColor: '#f6f6f6',
backgroundOpacity: 0.8
},
colors: ['#39d5db'],
grid: {
borderColor: '#cccccc',
color: '#999999',
labelMargin: 10
},
yaxis: {
ticks: 5
},
xaxis: {
tickSize: 1
}
}
);
这不起作用:
var phpintojsArray = <?= json_encode($sales); ?>;
var two = [3, 60];
var three = [5, 20];
var four = [7, 50];
var five = [9, 10];
/* Bars Chart */
var data = [[phpintojsArray], [two], [three], [four], [five]];
// Initialize Bars Chart
$.plot(BarChart, [
{ data: data, bars: { show: true, fillColor: { colors: [{ opacity: 1 }, { opacity: 1 }] } }, label: 'Example label' } ],
{
legend: {
backgroundColor: '#f6f6f6',
backgroundOpacity: 0.8
},
colors: ['#39d5db'],
grid: {
borderColor: '#cccccc',
color: '#999999',
labelMargin: 10
},
yaxis: {
ticks: 5
},
xaxis: {
tickSize: 1
}
}
);
为什么?
答案 0 :(得分:2)
您可以使用splice插入元素:
data.splice(0, 0, phpintojsArray);
答案 1 :(得分:1)
这有效:
/* Bar Chart */
var data = [[1, 10],[3, 60], [5, 20], [7, 50], [9, 10]];
这不起作用:
/* Bars Chart */
var data = [[phpintojsArray], [two], [three], [four], [five]];
为什么?
因为这两个表达式产生不同的结构。在第一个中,您有两个级别的嵌套数组(大数组中的小数组)。在第二个中,您有三个级别的嵌套数组。
一个简单的console.log
会告诉你差异。
确保您的数据结构正确。将其更改为:
var data = [two, three, four, five];
(如果仍然不清楚,括号[]
定义一个新数组)
关于如何预置phpintojsArray
的问题,您可以这样做:
Array.prototype.unshift.apply(data, phpintojsArray);
答案 2 :(得分:0)
你可以在javascript中使用eval。
例如:
var data = [[eval(“phpintojsArray”)],[eval(“two”)],[eval(“three”)],[eval(“four”)],[eval(“five”)) ]];