PHP中的PHP关联数组相当于?

时间:2014-06-10 04:41:31

标签: php ruby

如何在Ruby中编写以下数组?

 $itemsarray = array();

 $itemsarray["items"]['0']['product_id'] = 1;
 $itemsarray["items"]['0']['brand_id'] = 1;
 $itemsarray["items"]['0']['color_id'] = 1;

 $itemsarray["items"]['1']['product_id'] = 2;
 $itemsarray["items"]['1']['brand_id'] = 3;
 $itemsarray["items"]['1']['color_id'] = 5;

2 个答案:

答案 0 :(得分:2)

这很容易。以下是您的需求:

itemsarray = { 'items' => [ { 'product_id' => 1, 'brand_id' => 1, 'color_id' => 1 } ] }

现在做一点解释......

在Ruby中表示关联数组,我们使用 Hashes 。例如:{ 'a' => 1, 'b' => 2 } == array('a' => 1, 'b' => 2)

所以在顶层你有一个包含键items的哈希值,它的值是所有项目的数组。第一项是哈希,将产品选项作为键及其对应的值。

更好的方法是使用符号而不是字符串作为键,因为这会引入一些内存优化。这是一个例子:

itemsarray = { :items => [ { :product_id => 1, :brand_id => 1, :color_id => 1 } ] }

还有一种简写语法:abc => 1相当于:abc: 1,所以上面的行看起来像:

itemsarray = { items: [ { product_id: 1, brand_id: 1, color_id: 1 } ] }

<强>更新

有多个项目,它的外观如下:

itemsarray = { items: [
                          { product_id: 1, brand_id: 1, color_id: 1 },
                          { product_id: 2, brand_id: 3, color_id: 5 }
                      ]}

或动态方法:

itemsarray[:items].push( { product_id: 2, brand_id: 3, color_id: 5 } )

答案 1 :(得分:0)

itemsarray={ items:[{product_id:1, brand_id:1, color_id:1} ]}