【发布时间】:2018-07-09 05:47:47
【问题描述】:
我正在尝试转换产品数据的多维数组,其中将 PayPal 电子邮件设置为数组值之一(某些值可能相同)。我需要帮助将它们合并为 paypal_email 键相同的数组。这是我拥有的数组的print_r。
Array
(
[0] => Array
(
[name] => Test Product
[product_id] => 307
[variation_id] => 0
[subtotal] => 30
[total] => 30
[quantity] => 2
[subtotal_tax] => 2.66
[total_tax] => 2.66
[paypal_email] => thisismytestpaypal@sandbox.com
[vendor_id] => 2
[shipping] => Array
(
[shipping_total] => 25.00
[shipping_tax] => 2.22
)
)
[1] => Array
(
[name] => Album
[product_id] => 354
[variation_id] => 0
[subtotal] => 15
[total] => 15
[quantity] => 1
[subtotal_tax] => 1.33
[total_tax] => 1.33
[paypal_email] => thisismytestpaypal@sandbox.com
[vendor_id] => 11
[shipping] => Array
(
[shipping_total] => 25.00
[shipping_tax] => 2.22
)
)
[2] => Array
(
[name] => Beanie with Logo
[product_id] => 357
[variation_id] => 0
[subtotal] => 18
[total] => 18
[quantity] => 1
[subtotal_tax] => 1.60
[total_tax] => 1.60
[paypal_email] => ab2@sandbox.com
[vendor_id] => 10
[shipping] => Array
(
[shipping_total] => 25.00
[shipping_tax] => 2.22
)
)
[3] => Array
(
[name] => Long Sleeve Tee
[product_id] => 352
[variation_id] => 0
[subtotal] => 75
[total] => 75
[quantity] => 3
[subtotal_tax] => 6.66
[total_tax] => 6.66
[paypal_email] => ab2@sandbox.com
[vendor_id] => 2
[shipping] => Array
(
[shipping_total] => 25.00
[shipping_tax] => 2.22
)
)
[4] => Array
(
[name] => Polo
[product_id] => 353
[variation_id] => 0
[subtotal] => 80
[total] => 80
[quantity] => 4
[subtotal_tax] => 7.10
[total_tax] => 7.10
[paypal_email] => tv3@sandbox.com
[vendor_id] => 8
[shipping] => Array
(
[shipping_total] => 25.00
[shipping_tax] => 2.22
)
)
[5] => Array
(
[name] => Product From Test Vendor 3
[product_id] => 145
[variation_id] => 0
[subtotal] => 60
[total] => 60
[quantity] => 3
[subtotal_tax] => 5.33
[total_tax] => 5.33
[paypal_email] => tv3@sandbox.com
[vendor_id] => 10
[shipping] => Array
(
[shipping_total] => 25.00
[shipping_tax] => 2.22
)
)
[6] => Array
(
[name] => Product From Vendor 1
[product_id] => 143
[variation_id] => 0
[subtotal] => 20
[total] => 20
[quantity] => 2
[subtotal_tax] => 1.78
[total_tax] => 1.78
[paypal_email] => tv1@sandbox.com
[vendor_id] => 8
[shipping] => Array
(
[shipping_total] => 25.00
[shipping_tax] => 2.22
)
)
)
我需要将数组合并为一个多维数组,其中贝宝电子邮件作为键,其他数据作为值。例如,
Array
( [thisismytestpaypal@sandbox.com] => Array
(
[0] => Array
(
[name] => Test Product
[product_id] => 307
[variation_id] => 0
[subtotal] => 30
[total] => 30
[quantity] => 2
[subtotal_tax] => 2.66
[total_tax] => 2.66
[paypal_email] => thisismytestpaypal@sandbox.com
[vendor_id] => 2
[shipping] => Array
(
[shipping_total] => 25.00
[shipping_tax] => 2.22
)
)
[1] => Array
(
[name] => Album
[product_id] => 354
[variation_id] => 0
[subtotal] => 15
[total] => 15
[quantity] => 1
[subtotal_tax] => 1.33
[total_tax] => 1.33
[paypal_email] => thisismytestpaypal@sandbox.com
[vendor_id] => 11
[shipping] => Array
(
[shipping_total] => 25.00
[shipping_tax] => 2.22
)
)
)
[ab2@sandbox.com] => Array
(
[0] => Array
(
[name] => Beanie with Logo
[product_id] => 357
[variation_id] => 0
[subtotal] => 18
[total] => 18
[quantity] => 1
[subtotal_tax] => 1.60
[total_tax] => 1.60
[paypal_email] => ab2@sandbox.com
[vendor_id] => 10
[shipping] => Array
(
[shipping_total] => 25.00
[shipping_tax] => 2.22
)
)
[1] => Array
(
[name] => Long Sleeve Tee
[product_id] => 352
[variation_id] => 0
[subtotal] => 75
[total] => 75
[quantity] => 3
[subtotal_tax] => 6.66
[total_tax] => 6.66
[paypal_email] => ab2@sandbox.com
[vendor_id] => 2
[shipping] => Array
(
[shipping_total] => 25.00
[shipping_tax] => 2.22
)
)
)
[tv3@sandbox.com] => Array
(
[0] => Array
(
[name] => Polo
[product_id] => 353
[variation_id] => 0
[subtotal] => 80
[total] => 80
[quantity] => 4
[subtotal_tax] => 7.10
[total_tax] => 7.10
[paypal_email] => tv3@sandbox.com
[vendor_id] => 8
[shipping] => Array
(
[shipping_total] => 25.00
[shipping_tax] => 2.22
)
)
[1] => Array
(
[name] => Product From Test Vendor 3
[product_id] => 145
[variation_id] => 0
[subtotal] => 60
[total] => 60
[quantity] => 3
[subtotal_tax] => 5.33
[total_tax] => 5.33
[paypal_email] => tv3@sandbox.com
[vendor_id] => 10
[shipping] => Array
(
[shipping_total] => 25.00
[shipping_tax] => 2.22
)
)
)
[tv1@sandbox.com] => Array
(
[0] => Array
(
[name] => Product From Vendor 1
[product_id] => 143
[variation_id] => 0
[subtotal] => 20
[total] => 20
[quantity] => 2
[subtotal_tax] => 1.78
[total_tax] => 1.78
[paypal_email] => tv1@sandbox.com
[vendor_id] => 8
[shipping] => Array
(
[shipping_total] => 25.00
[shipping_tax] => 2.22
)
)
)
)
我该怎么做?
谢谢
【问题讨论】:
-
到目前为止你有没有尝试过?
-
@NigelRen,是的,我做到了。有太多方法让我迷失了方向:(
-
@Abhik,我知道这种感觉,但不努力会导致对 SO 投反对票,因为它写着:为我编写代码。
-
@Progrock,那不是故意的,只是失去了尝试的轨迹。
-
@Abhik,我确定这不是您的意图,只是警告您,因为您的问题可能会被否决甚至关闭 :)
标签: php arrays multidimensional-array array-merge