我想在php foreach循环中跳过空数据。
我有以下数据结构:
$sales = array(
0=>array(
0=>array({cash_saleno:null, test:1, val:3}) //the data is an object
1=>array({cash_saleno:ABCD, test:23, val:4})
2=>array({cash_saleno:ABCD, test:23, val:4})
),
1=>array()...//structure as above
)
)
现在我想跳过索引0,因为cash_Sale_no
是null
,所以我试过了:
foreach ($exportedatas as $key => $exportedata) {
foreach ($exportedata as $exportedatum) {
if (!empty($exportedatum->cash_Saleno)) {
...proceed with saving the data
}
}
}
但是上面没有保存数据,但是当我删除if (!empty($exportedatum->cash_Saleno))
检查时,它可以工作,但现在它甚至可以保存空列。我该如何纠正上述问题?
答案 0 :(得分:1)
我认为你需要一个更多的嵌套循环才能访问cash_saleno
。以下代码对我有用:
$sales = array(
0=>array(
0=>array(
0=>array('{"cash_saleno": null, "test": 1, "val": 3}'), //the data is an object
1=>array('{"cash_saleno": "ABCD", "test": 23, "val": 4}'),
2=>array('{"cash_saleno": "ABCD", "test": 23, "val": 4}'),
),
)
);
foreach ($sales as $key => $exportedata) {
foreach ($exportedata as $exportedatum) {
foreach ($exportedatum as $data) {
$obj = json_decode($data[0]);
if (!empty($obj->{'cash_saleno'})) {
// Save data
}
}
}
}
答案 1 :(得分:0)
您检查了错误日志吗?
$ exportedatum是一个包含该对象的数组,所以你应该测试:if(!empty($ exportedatum [0] - > cash_Saleno))...