php unset foreach循环未取消设置数组的值

时间:2018-12-11 02:24:12

标签: php arrays unset

我在php 7.2中有以下代码:

foreach ($data->certificates as $k => $certificate) {
    if (empty($certificate['testCertificateId'])) {
        unset($data->certificates[$k]);
    }
}

$data是一个关联数组。每个$certificate是一个关联数组。

如果$certificate数组没有键testCertificateId,我想从$certificate中删除$data->certificates

我不知道为什么,但是此代码在php 7.2上不起作用。在7.0上确实可以使用!

有人可以帮忙吗?已经杀了我两天了...

1 个答案:

答案 0 :(得分:0)

这是您当前代码的解决方法:

$tempArr = [];
foreach ($data->certificates as $k => $certificate) {
    if (!empty($certificate['testCertificateId'])) {
        $tempArr[$k] = $data->certificates[$k];
    }
}
$data->certificates = $tempArr;