0

给定 PHP 数组:

$forColumnsArr['p_pl'] = array('datatype_names' => array('publisher', 'placement', 'placement_groups'), 'labels' => 'All Placements');
$forColumnsArr['a_st'] = array('datatype_names' => array('advertiser', 'campaign', 'strategy'), 'labels' => 'All Campaigns, All Strategies');

想要类似/等效的 javascript 数组

请帮我

4

8 回答 8

1

表示为对象:

var forColumnsArr = {
     p_pl : {
         datatype_names : { 
            0: 'publisher',
            1: 'placement',
            2: 'placement_groups'
         },
         labels : 'All Placements'
     },
     a_st : {
         datatype_names : { 
            0: 'advertiser',
            1: 'campaign',
            2: 'strategy'
         },
         labels : 'All Campaigns, All Strategies'
     }
}

// console.log(forColumnsArr.p_pl.datatype_names[0]); // publisher
// console.log(forColumnsArr.p_pl.datatype_names[1]); // placement
// console.log(forColumnsArr.p_pl.datatype_names[2]); // placement_groups
于 2012-10-09T14:04:56.413 回答
1

我个人更喜欢使用JS objects,您可以参考 Mihai 的答案。但是,既然您要求数组,那么您就可以了,

 var forColumnsArr['p_pl'] = new Array();
 forColumnsArr['p_pl']['datatype_names'][0] = 'publisher';
 forColumnsArr['p_pl']['datatype_names'][1] = 'placement'; 
 forColumnsArr['p_pl']['datatype_names'][2] = 'placement_groups';
 forColumnsArr['p_pl']['labels'] = 'All Placements';

同样,对于forColumnsArr['a_st'],这是手册

于 2012-10-09T14:05:07.133 回答
0

您可以使用json_encode从 PHP 生成 JavaScript 数组

于 2012-10-09T14:06:56.257 回答
0

不要使用数组,使用对象。(好吧,JS 中的数组是一个对象,但现在我们不要去那里。)

$forColumnsArr['p_pl'] = array('datatype_names' => array('publisher', 'placement', 'placement_groups'), 'labels' => 'All Placements');

var forColumnsArr = {
'datatype_names': ['publisher', 'placement', 'placement_groups'],
'labels' : 'All Placements'
};

这称为“对象文字符号”。

还要查找 JSON,这是一个很好的节省时间。

于 2012-10-09T14:07:15.317 回答
0
var p_pl = {
  datatype_names: ['publisher', 'placement', 'placement_groups'],
  labels: 'All Placements'
};

var a_st = {
  datatype_names: ['advertiser', 'campaign', 'strategy'],
  labels: 'All Campaigns, All Strategies'
};

从 php 分配它们

<?php 
$p_pl = json_encode($forColumnsArr['p_pl']);
$a_st = json_encode($forColumnsArr['a_st']);
?>
var p_pl = eval('(' + '<?php echo $p_pl; ?>' + ')');
var a_st = eval('(' + '<?php echo $a_st; ?>' + ')');
于 2012-10-09T14:07:27.053 回答
0
var forColumnsArr = {
    p_pl: {
        datatype_names: {
             0:'publisher',
                1: 'placement', 
                2: 'placement_groups'

        },
        labels: 'All Placements'
    },
    a_st: {
        datatype_names: {
                0: 'advertiser', 
                1: 'campaign', 
                2: 'strategy'
        },
        labels: 'All Campaigns, All Strategies'
    }
};
于 2012-10-09T14:11:02.827 回答
0

使用对象和数组文字:

var forColumnsArr = {
     p_pl: {
         datatype_names : [
              'publisher',
              'placement',
              'placement_groups'
         ],
         labels : 'All Placements'
    },
    a_st: {
         datatype_names: [
             'advertiser',
             'campaign',
             'strategy'
         ],
         labels: 'All Campaigns, All Strategies'
    }
};

访问这些对象的属性就像在 PHP 中一样,可以使用括号或点表示法。

您可以通过调用PHP 对象上的json_encode函数轻松生成此 JSON 标记。

于 2012-10-09T14:12:34.273 回答
0
var object = {
    'datatype_names' : {
        'publisher':'Value', 
        'placement':'Value', 
        'placement_groups':'Value'
    },
    'labels' : 'All Placements'
}

console.log(object);
于 2012-10-09T14:19:40.860 回答