我有这个2d数组,如果d超过30天,喜欢拼接或取消设置a,b,c,d。 完全是php数组的新手,非常感谢。
Array
(
[0] => Array (
[0] => a
[1] => b
[2] => c
[3] => d
)
[1] => Array (
[0] => a
[1] => b
[2] => c
[3] => d
)
)
foreach($arr as $a) {
if($a[3] + 30 < date) {
//???
}
}
答案 0 :(得分:2)
foreach($arr as $index => $a) {
if($a[3] + 30 < date) {
unset($arr[$index]);
}
}
(而我,我自己,我会使用关联数组来处理它更舒服,导致人类可读)
答案 1 :(得分:0)
这是使用标准date_diff函数和DateTime对象的示例。 date_diff还可以为您提供与天数不同的其他面额。我通常更喜欢使用标准功能,因为它支持更多的时区等情况。
-
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
altoButton1.Paint += altoButton1_Paint;
}
void altoButton1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawLine(Pens.Red, 3, 3, 10, 10);
}
private void timer1_Tick(object sender, EventArgs e)
{
altoButton1.Invalidate();
}
}
-
输出:
<?php
$d1=new DateTime("2016-03-22");
$d2=new DateTime("2015-03-23");
$d3=new DateTime("2015-03-24");
$d4=new DateTime("2015-03-25");
$today= new DateTime();
$arr = array(
array (
$d1,
$d2,
$d3,
$d4,
),
array (
$d4,
$d2,
$d3,
$d1
)
);
$count=0;
foreach ($arr as &$a) {
echo "Element" . $count . ": \r\n";
//print_r(date_diff($a[3], $today));
$difference = date_diff($a[3], $today);
if ($difference->days > 30 ){
echo "Removing. \r\n";
unset($arr[$count]);
}
else{
echo "Not removing. \r\n";
}
$count++;
}
print_r($arr);
?>