一开始我有两个 PHP 数组。
第一个数组有一个按Y-m
顺序排列的日期长度,其中包含 12 个月中的每个月份和年份。这个数组看起来像这样......
Array
(
[0] => Array ( [ORDER] => Array ( [DATE] => 2008-10 [QTY] => 0 ) )
[1] => Array ( [ORDER] => Array ( [DATE] => 2008-11 [QTY] => 0 ) )
)
第二个数组具有已从查询返回并放入数组中的值,并且也是按Y-m
顺序排列的,可能有也可能没有每个月。第二个是这样的。
Array
(
[0] => Array ( [ORDER] => Array ( [DATE] => 2008-11 [QTY] => 285 ) )
[1] => Array ( [ORDER] => Array ( [DATE] => 2008-12 [QTY] => 900 ) )
)
我的最终目标是生成一个 Ym 日期数组,用于谷歌折线图,如果该月没有下订单,它将显示 0。所以那个数组应该是这样的..
Array
(
[0] => Array ( [ORDER] => Array ( [DATE] => 2008-10 [QTY] => 0 ) )
[1] => Array ( [ORDER] => Array ( [DATE] => 2008-11 [QTY] => 285 ) )
[2] => Array ( [ORDER] => Array ( [DATE] => 2008-12 [QTY] => 900 ) )
)
所以数组项...
[1] => Array ( [ORDER] => Array ( [DATE] => 2008-11 [QTY] => 0 ) )
被删除,因为第二个数组中有一个具有相同日期值的条目。
现在我不确定我是否以正确的方式进行此操作,但这就是我到目前为止所拥有的。
foreach($FIRST_ARRAY as $key => $each)
{
foreach($each as $line)
{
$findMe = $line['DATE'];
if(in_array($findMe, $SECOND_ARRAY, true))
{
echo 'FOUND:'.$findMe;
}else{
echo $line['DATE'].' ';
echo $line['QTY'].' ';
echo '('.$findMe.')<br>';
}
}
}
所有这些都是打印出第一个数组。这不是“匹配”日期。这是它的打印内容...
2008-10 0 (2008-10) 2008-11 0 (2008-11) 2008-12 0 (2008-12)
这是我希望它打印出来的...
2008-10 0 (2008-10) 2008-11 285 (2008-11) 2008-12 900 (2008-12)
问题将是:我是否将这一切都错了,或者是否有更好的方法来做到这一点。
我希望这一切都有意义。