php unset цикл foreach не сбрасывает значение массива - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть следующий код в 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 он работает!

Может кто-нибудь помочь, пожалуйста?Это убивает меня уже 2 дня ...

1 Ответ

0 голосов
/ 11 декабря 2018

Это обходной путь для вашего текущего кода:

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