我需要删除Vencimiento'与当月不同
我有这个可变的数组,所以我发现我必须是foreach并搜索到期的前6个字符(" 2017-11" -xx)是否等于当前月份用date()验证它
ARRAY:
array(2) {
[264]=>
array(10) {
[0]=>
array(6) {
["idImpuesto"]=>
int(10)
["idConcepto"]=>
int(19)
["periodo"]=>
string(4) "2017"
["tipoOperacion"]=>
string(12) "PRESENTACION"
["vencimiento"]=>
string(10) "2017-11-13"
["formularios"]=>
string(3) "713"
}
[1]=> //DELETE
array(6) {
["idImpuesto"]=>
int(10)
["idConcepto"]=>
int(19)
["periodo"]=>
string(4) "2017"
["tipoOperacion"]=>
string(12) "PRESENTACION"
["vencimiento"]=>
string(10) "2017-12-29" //IT'S NOT THE CURRENT MONTH
["formularios"]=>
string(3) "713"
}
[2]=> //DELETE
array(5) {
["idImpuesto"]=>
int(10)
["idConcepto"]=>
int(859)
["periodo"]=>
string(4) "2017"
["tipoOperacion"]=>
string(12) "PRESENTACION"
["vencimiento"]=>
string(10) "2017-12-13" //IT'S NOT THE CURRENT MONTH
}
[3]=>
array(5) {
["idImpuesto"]=>
int(10)
["idConcepto"]=>
int(19)
["periodo"]=>
string(4) "2017"
["tipoOperacion"]=>
string(4) "PAGO"
["vencimiento"]=>
string(10) "2017-11-13"
}
[4]=> //DELETE
array(6) {
["idImpuesto"]=>
int(10)
["idConcepto"]=>
int(191)
["periodo"]=>
string(4) "2018"
["anticipoCuota"]=>
int(1)
["tipoOperacion"]=>
string(4) "PAGO"
["vencimiento"]=>
string(10) "2017-12-13" //IT'S NOT THE CURRENT MONTH
}
[5]=> //DELETE
array(6) {
["idImpuesto"]=>
int(10)
["idConcepto"]=>
int(191)
["periodo"]=>
string(4) "2018"
["anticipoCuota"]=>
int(2)
["tipoOperacion"]=>
string(4) "PAGO"
["vencimiento"]=>
string(10) "2018-01-15" //IT'S NOT THE CURRENT MONTH
}
[6]=> //DELETE
array(5) {
["idImpuesto"]=>
int(10)
["idConcepto"]=>
int(859)
["periodo"]=>
string(4) "2017"
["tipoOperacion"]=>
string(4) "PAGO"
["vencimiento"]=>
string(10) "2017-12-13" //IT'S NOT THE CURRENT MONTH
}
[7]=> //DELETE
array(6) {
["idImpuesto"]=>
int(30)
["idConcepto"]=>
int(19)
["periodo"]=>
string(7) "2017-12"
["tipoOperacion"]=>
string(12) "PRESENTACION"
["vencimiento"]=>
string(10) "2018-01-18" //IT'S NOT THE CURRENT MONTH
["formularios"]=>
string(8) "731,2002"
}
[8]=> //DELETE
array(6) {
["idImpuesto"]=>
int(30)
["idConcepto"]=>
int(19)
["periodo"]=>
string(7) "2017-11"
["tipoOperacion"]=>
string(12) "PRESENTACION"
["vencimiento"]=>
string(10) "2017-12-18" //IT'S NOT THE CURRENT MONTH
["formularios"]=>
string(8) "731,2002"
}
[9]=>
array(6) {
["idImpuesto"]=>
int(30)
["idConcepto"]=>
int(19)
["periodo"]=>
string(7) "2017-10"
["tipoOperacion"]=>
string(12) "PRESENTACION"
["vencimiento"]=>
string(10) "2017-11-21"
["formularios"]=>
string(8) "731,2002"
}
}
[265]=>
array(9) {
[0]=> //DELETE
array(6) {
["idImpuesto"]=>
int(11)
["idConcepto"]=>
int(191)
["periodo"]=>
string(4) "2017"
["anticipoCuota"]=>
int(4)
["tipoOperacion"]=>
string(4) "PAGO"
["vencimiento"]=>
string(10) "2017-12-13" //IT'S NOT THE CURRENT MONTH
}
[1]=> //DELETE
array(6) {
["idImpuesto"]=>
int(30)
["idConcepto"]=>
int(19)
["periodo"]=>
string(7) "2017-12"
["tipoOperacion"]=>
string(12) "PRESENTACION"
["vencimiento"]=>
string(10) "2018-01-18" //IT'S NOT THE CURRENT MONTH
["formularios"]=>
string(8) "731,2002"
}
[2]=> //DELETE
array(6) {
["idImpuesto"]=>
int(30)
["idConcepto"]=>
int(19)
["periodo"]=>
string(7) "2017-11"
["tipoOperacion"]=>
string(12) "PRESENTACION"
["vencimiento"]=>
string(10) "2017-12-19" //IT'S NOT THE CURRENT MONTH
["formularios"]=>
string(8) "731,2002"
}
[3]=>
array(6) {
["idImpuesto"]=>
int(30)
["idConcepto"]=>
int(19)
["periodo"]=>
string(7) "2017-10"
["tipoOperacion"]=>
string(12) "PRESENTACION"
["vencimiento"]=>
string(10) "2017-11-22"
["formularios"]=>
string(8) "731,2002"
}
[4]=> //DELETE
array(5) {
["idImpuesto"]=>
int(30)
["idConcepto"]=>
int(19)
["periodo"]=>
string(7) "2017-12"
["tipoOperacion"]=>
string(4) "PAGO"
["vencimiento"]=>
string(10) "2018-01-18" //IT'S NOT THE CURRENT MONTH
}
[5]=> //DELETE
array(5) {
["idImpuesto"]=>
int(30)
["idConcepto"]=>
int(19)
["periodo"]=>
string(7) "2017-11"
["tipoOperacion"]=>
string(4) "PAGO"
["vencimiento"]=>
string(10) "2017-12-19" //IT'S NOT THE CURRENT MONTH
}
[6]=>
array(5) {
["idImpuesto"]=>
int(30)
["idConcepto"]=>
int(19)
["periodo"]=>
string(7) "2017-10"
["tipoOperacion"]=>
string(4) "PAGO"
["vencimiento"]=>
string(10) "2017-11-22"
}
[7]=> //DELETE
array(5) {
["idImpuesto"]=>
int(308)
["idConcepto"]=>
int(19)
["periodo"]=>
string(7) "2017-11"
["tipoOperacion"]=>
string(4) "PAGO"
["vencimiento"]=>
string(10) "2017-12-05" //IT'S NOT THE CURRENT MONTH
}
[8]=>
array(5) {
["idImpuesto"]=>
int(308)
["idConcepto"]=>
int(19)
["periodo"]=>
string(7) "2017-10"
["tipoOperacion"]=>
string(4) "PAGO"
["vencimiento"]=>
string(10) "2017-11-06"
}
}
}
如何以这种方式过滤整个阵列?
array(2) {
[264]=>
array(24) {
[0]=>
array(6) {
["idImpuesto"]=>
int(10)
["idConcepto"]=>
int(19)
["periodo"]=>
string(4) "2017"
["tipoOperacion"]=>
string(12) "PRESENTACION"
["vencimiento"]=>
string(10) "2017-11-13"
["formularios"]=>
string(3) "713"
}
[1]=>
array(5) {
["idImpuesto"]=>
int(10)
["idConcepto"]=>
int(19)
["periodo"]=>
string(4) "2017"
["tipoOperacion"]=>
string(4) "PAGO"
["vencimiento"]=>
string(10) "2017-11-13"
}
[2]=>
array(6) {
["idImpuesto"]=>
int(30)
["idConcepto"]=>
int(19)
["periodo"]=>
string(7) "2017-10"
["tipoOperacion"]=>
string(12) "PRESENTACION"
["vencimiento"]=>
string(10) "2017-11-21"
["formularios"]=>
string(8) "731,2002"
}
[3]=>
array(5) {
["idImpuesto"]=>
int(30)
["idConcepto"]=>
int(19)
["periodo"]=>
string(7) "2017-10"
["tipoOperacion"]=>
string(4) "PAGO"
["vencimiento"]=>
string(10) "2017-11-21"
}
}
[265]=>
array(3) {
[0]=>
array(6) {
["idImpuesto"]=>
int(30)
["idConcepto"]=>
int(19)
["periodo"]=>
string(7) "2017-10"
["tipoOperacion"]=>
string(12) "PRESENTACION"
["vencimiento"]=>
string(10) "2017-11-22"
["formularios"]=>
string(8) "731,2002"
}
[1]=>
array(5) {
["idImpuesto"]=>
int(30)
["idConcepto"]=>
int(19)
["periodo"]=>
string(7) "2017-10"
["tipoOperacion"]=>
string(4) "PAGO"
["vencimiento"]=>
string(10) "2017-11-22"
}
[2]=>
array(5) {
["idImpuesto"]=>
int(308)
["idConcepto"]=>
int(19)
["periodo"]=>
string(7) "2017-10"
["tipoOperacion"]=>
string(4) "PAGO"
["vencimiento"]=>
string(10) "2017-11-06"
}
}
}
任何想法?
答案 0 :(得分:1)
您可以使用两个循环和date()
来比较年份和月份:
foreach($array as &$val1) {
foreach($val1 as &$val2) {
if(date('Y-m', strtotime($val2['vencimiento'])) != date('Y-m')) {
unset($val2);
}
}
}
答案 1 :(得分:1)
可以使用date()
获取当前月份名称,然后将它们放入新数组中,如:
$result = [];
foreach($var as $v) {
foreach($v as $a) {
$date = date('F',strtotime($a['vencimiento']));
$now = date('F');
if($date === $now) {
$result[] = $v;
}
}
}
var_dump($var);
var_dump($result);
答案 2 :(得分:1)
此代码创建一个具有所需输出的新数组。
// define new array
$new_array = array();
// get year and date in the same format as vencimiento in array
$year_month = date('Y-m');
foreach($array as $key=>$value){
foreach($value as $k=>$v){
// check for the condition
if(substr($v['vencimiento'], 0, 7) == $year_month){
// assign to new array
$new_array[$key][]=$v;
}
}
}
print_r($new_array);
答案 3 :(得分:0)
array_filter是你的朋友。
假设您的完整数组是$array
:
$current_month = date('Y-m');
foreach($array as $key => $sub_array) {
$array[$key] = array_filter($sub_array, function($item) use($current_month) {
return substr($item['vencimiento'], 0, 7) == $current_month;
});
}
$array = array_filter($array);