@Minusator

Как решить проблему с array fiil keys?

Всем привет.
Имею контролер, который должен при обмене с 1С выставлять товарам количество 0 если их нет в выгрузке.
Получаю ошибку PHP Warning: array_fill_keys() expects parameter 1 to be array, boolean given in
По строке
$sku['stock'] = array_fill_keys($stock_complement, 0);


Полный код

if (empty($sku['stock'])) {
                    unset($sku['stock']);
                } else {
                    /** @var false|int[] $stock_complement */
                    $stock_complement = $this->data['stock_complement'];
                    $_stock_data_filled = (count($sku['stock']) > 1) || !isset($sku['stock'][0]);
                    if (!empty($stock_complement) # Выбрана настройка "Обнулять остатки в несинхронизированных складах"
                        && $_stock_data_filled
                    ) {
                        $sku['stock'] += array_fill_keys($stock_complement, 0);
                    }
                    if (!empty($this->data['stock_forced']) && $stock_not_found) {
                        # случай если в исходном файле нет поля с информацией о складах
                        $sku['stock'] = array_fill_keys($stock_complement, 0);
                    }
                }
  • Вопрос задан
  • 67 просмотров
Решения вопроса 2
iMedved2009
@iMedved2009
Не люблю людей
$sku['stock'] = array_fill_keys($stock_complement&&is_array($stock_complement)?$stock_complement:[], 0);
Ответ написан
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
$sku['stock'] = array_fill_keys($stock_complement ?: [], 0);
или $sku['stock'] = array_fill_keys((array) $stock_complement, 0);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы