如何在多维数组中使用数组

How to use an array inside a multidimensional array?

本文关键字:数组      更新时间:2023-09-26

如果我有一个这样的数组:

var phpintojsArray = [["1","20"]];

…我也有一个多数组:

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
            }
        }
    );

为什么?

您可以使用splice来插入元素:

data.splice(0, 0, phpintojsArray);

如此:

/* 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);

你可以在javascript中使用eval。

例如

:

var data = [[eval("phpintojsArray")],[eval("两个")],[eval(三)],[eval("四")],[eval(五)]],