嗨,我一直在解决这个问题将近2个星期,但我看不到任何合适的博客或教程,也可能无法解决我的问题...
这是我的问题...
代码:
foreach ($transHistory as $row) {
$category[] = '{ y: '.$row->new_qty.', label: "'.$row->sku.'" }';
$series[] = $row->new_qty;
$nd = $row->createddate;
$nd = date("Y-m-d", strtotime($nd));
$date[] = $nd;
}
print_r($series);
print_r($date);
在我的代码中,我得到了这个数组值
//array 1
Array ( [0] => 28 [1] => 28 [2] => 07 [3] => 27 );
//array 2
Array ( [0] => 2 [1] => 1 [2] => 14 [3] => 36 );
我想从数组2中获得[0]和[1]之和。 因为数组1中的[0]和[1]具有相同的值。
所需的输出:
// array 1
Array ( [0] => 28 [1] => 07 [2] => 27 );
//array 2
Array ( [0] => 3 [1] => 14 [2] => 36 );
答案 0 :(得分:1)
下面的代码将在$ series数组中检入任何重复值,如果找到,则将对$ date数组中相同索引中存在的值求和,并从$ series数组中删除重复项。
foreach ($transHistory as $row) {
$category[] = '{ y: '.$row->new_qty.', label: "'.$row->sku.'" }';
$series[] = $row->new_qty;
$nd = $row->createddate;
$nd = date("Y-m-d", strtotime($nd));
$date[] = $nd;
}
$date_new = [];
$temp=[];
foreach($series as $k=>$item)
{
if(!in_array($item, $temp))
{
$keys = array_keys($series, $item);
$temp[]=$item;
$sum = 0;
foreach($keys as $key)
{
$sum+=$date[$key];
}
$date_new[]=$sum;
}
}
$series = $temp;
$date = $date_new;
print_r($series);
print_r($date);
答案 1 :(得分:0)
我刚准备好了,这是你要找的吗?
<?php
$array1 = Array(28,28,7,27);
$array2 = Array(2,1,14,36);
sort($array1);
sort($array2);
for ($i = 0;$i < count($array1);$i++) {
if ($i == count($array1) - 1) {
break;
} else if ($array1[$i] == $array1[$i+1] ) {
$result = $array2[$i] + $array2[$i + 1];
unset($array1[$i]);
unset($array2[$i]);
unset($array2[$i + 1]);
array_push($array2,$result);
}
}
// Testing Purposes
print_r($array1);
echo "<pre></pre>";
print_r($array2);
?>
现在我在这里使用unset将值从数组中取出,这意味着如果$ array1 [3]上有东西而我未设置它,则该空间仍然存在,但未排序。这或多或少是个主意,它需要进行修订才能完美地工作。