【发布时间】:2013-11-26 12:38:31
【问题描述】:
我有一个从表单发布的值的多维数组,我不仅要对它们进行重复数据删除,还要对重复数组中的值求和,以便将它们作为一个更大的值发布。
贴出来的数组如下:
Array
(
[0] => Array
(
[0] => 4
[1] => 27/11/2013
)
[1] => Array
(
[0] => 4
[1] => 27/11/2013
)
[2] => Array
(
[0] => 2
[1] =>
)
[3] => Array
(
[0] => 2
[1] =>
)
)
对于每个子数组,值 0 是数量,值 1 是日期(可选)。数组中的最后一项是 2 的数量,其中包含一个空白日期,因为所需的总数是 12,所以会自动添加。
然后我正在使用 foreach 循环(如下)查看子数组以检查重复的日期。
foreach ($qty_date_array as $key => $value)
{
if(in_array($value[1], $exists) && !in_array($value[1], $duplicates))
{
$duplicates[] = $value[1];
}
else
{
$exists[] = $value[1];
}
$duplicates 的输出是...
Array
(
[0] => 27/11/2013
[1] =>
)
我想然后我想查看数组中达到的值并对其进行 foreach,找到相关的原始 qty 值并将它们求和,但我不确定如何进一步进行。
Array_search 只会返回键,所以我猜它已经失效了(我不能将 Qty 写为键,因为它可能是重复值)。我接触过的其他数组函数,例如array_unique,会根据索引折叠数组,因此会丢失数据。
最终的多维数组在理想情况下应该是这样的:
Array
(
[0] => Array
(
[0] => 8
[1] => 27/11/2013
)
[2] => Array
(
[0] => 4
[1] =>
)
)
如果有人可以提出更有效的方法来实现这一点,我愿意接受所有建议!
【问题讨论】:
标签: php arrays multidimensional-array duplicates