BuslikDrev Опубликовано: ноября 20, 2017 Жалоба Поделиться Опубликовано: ноября 20, 2017 Всем привет, кто знает, как можно сравнить данные из двух массивов foreach и в одном из них вывести значение из второго? Например, делаю вывод пути изображения из таблицы модуля, но хочу заменить изображение из другой таблицы (производителей), если значение в таблице модуля = 0. Вот и не знаю как связать это дело. Сделал так, оно выводит изображение из двух таблиц, но копирует каждое значение в раз 10 (столько производителей): Скрытый текст $data['main_manufacturers'] = array(); if (isset($this->request->post['main_manufacturers'])) { $results = $this->request->post['main_manufacturers']; } elseif (!empty($module_info['main_manufacturers'])) { $results = $module_info['main_manufacturers']; } else { $results = array(); } foreach ($results as $result) { $results2 = $this->model_catalog_manufacturer->getManufacturers(0); foreach ($results2 as $result2) { if (is_file(DIR_IMAGE . $result['image'])) { $image = $result['image']; $thumb = $result['image']; } elseif (array_diff((array)$result2['manufacturer_id'], (array)$result['manufacturer_id'])) { $image = $result2['image']; $thumb = $result2['image']; } else { $image = ''; $thumb = 'no_image.png'; } $data['main_manufacturers'][] = array( 'manufacturer_id' => $result['manufacturer_id'], 'image' => $image, 'thumb' => $this->model_tool_image->resize($thumb, 100, 100) ); } unset($result); } Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
BuslikDrev Опубликовано: ноября 20, 2017 Автор Жалоба Поделиться Опубликовано: ноября 20, 2017 Меня осенило! Вопрос решил по другому: Скрытый текст $data['main_manufacturers'] = array(); if (isset($this->request->post['main_manufacturers'])) { $results = $this->request->post['main_manufacturers']; } elseif (!empty($module_info['main_manufacturers'])) { $results = $module_info['main_manufacturers']; } else { $results = array(); } foreach ($results as $result) { $manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($result['manufacturer_id']); if ($manufacturer_info['image'] && is_file(DIR_IMAGE . $result['image']) || is_file(DIR_IMAGE . $result['image'])) { $image = $result['image']; $thumb = $result['image']; } elseif ($manufacturer_info['image'] && !is_file(DIR_IMAGE . $result['image'])) { $image = $manufacturer_info['image']; $thumb = $manufacturer_info['image']; } else { $image = ''; $thumb = 'no_image.png'; } $data['main_manufacturers'][] = array( 'manufacturer_id' => $result['manufacturer_id'], 'image' => $image, 'thumb' => $this->model_tool_image->resize($thumb, 100, 100) ); unset($result); } Если не установлено своё фото, загружает из категории, если и там нету, то грузит стандартное. Но есть вопрос, правильно-ли, что unset($result); добавил? Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
BuslikDrev Опубликовано: ноября 24, 2017 Автор Жалоба Поделиться Опубликовано: ноября 24, 2017 Я как понял, unset() удаляет переменную. Мол мой скрипт работу закончил, uset удалил переменную, чтобы это не делал уборщик php тем самым не засоряем память сервера, то есть засоряем на меньшее время. Ещё есть вариант $a = NULL; или $a>f = NULL; Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сейчас и зарегистрироваться позже. Если у вас есть учётная запись, войдите, чтобы публиковать под своей учётной записью.