【发布时间】:2014-06-21 16:09:57
【问题描述】:
我有一个名为 $_POST 的关联数组。这个数组本质上是动态的,它可以包含任何编号。的元素。供您参考,我生成了只有两个元素的 $_POST 数组。这个数组的内容如下:
Array
(
[op] => preview
[id] =>
[form_submitted] => yes
[company_id] => 46
[product_id_1] => Array
(
[1] => 10
[2] => 9
)
[pack] => Array
(
[1] => 10
[2] => 50
)
[quantity] => Array
(
[1] => 20
[2] => 60
)
[volume] => Array
(
[1] => 30
[2] => 70
)
[units] => Array
(
[1] => 7
[2] => 12
)
[amount] => Array
(
[1] => 40
[2] => 80
)
[rebate_start_date] => Array
(
[1] => 2014-05-01
[2] => 2014-06-01
)
[rebate_expiry_date] => Array
(
[1] => 2014-05-31
[2] => 2014-06-30
)
[applicable_states] => Array
(
[1] => Array
(
[0] => 3
[1] => 4
[2] => 10
[3] => 15
[4] => 17
)
[2] => Array
(
[0] => 44
[1] => 45
[2] => 47
[3] => 49
[4] => 50
)
)
[multiselect] => 50
[rebate_total_count] => Array
(
[1] => 5000
[2] => 10000
)
[product_id_2] => Array
(
[1] => 11
[2] => 8
)
)
现在我想要一个新数组,使得同一索引的所有数据都应该在一个值等于该索引的键下。如果您对我的要求感到困惑,请查看我要生成的以下数组:
Array
(
[op] => preview
[id] =>
[form_submitted] => yes
[company_id] => 46
[1] => Array
(
[pack] => 10
[quantity] => 20
[volume] => 30
[units] => 7
[amount] => 40
[rebate_start_date] => 2014-05-01
[rebate_expiry_date] => 2014-05-31
[rebate_total_count] => 5000
[applicable_states] => Array
(
[0] => 3
[1] => 4
[2] => 10
[3] => 15
[4] => 17
)
[product_id_1] => Array
(
[1] => 10
[2] => 9
)
)
[2] => Array
(
[pack] => 50
[quantity] => 60
[volume] => 70
[units] => 12
[amount] => 80
[rebate_start_date] => 2014-06-01
[rebate_expiry_date] => 2014-06-30
[rebate_total_count] => 10000
[applicable_states] => Array
(
[0] => 44
[1] => 45
[2] => 47
[3] => 49
[4] => 50
)
[product_id_2] => Array
(
[1] => 11
[2] => 8
)
)
[multiselect] => 50
)
在上面的数组中,您可以观察到匹配索引的所有数据都在同一个键下。我还想告诉你一件事,[applicable_states] 和 [rebate_total_count] 键可能包含空白值。在操作数组$_POST 时也应该考虑这一点,以便生成包含上述一个键下相同索引的所有数据的数组。如何通过在 PHP 中使用现成的数组函数和一些神奇的逻辑以最佳方式实现这一点?谢谢。
【问题讨论】:
-
一些地图和过滤。你尝试了什么? Cos SO 不是代码生成器
-
[pack]与[product_id_1]有什么关系?
标签: php arrays multidimensional-array associative-array key-value