Приветствую!
Есть json вида
Код (Javascript):
«PROPERTIES»: { «CRI»: «, 80», «IP»: «IP66», «Высота»: «6 см», «Высота в упаковке»: «8 см», «Гарантия»: «5 лет», «Длина»: «6.45 см», «Длина в упаковке»: «10 см», «КСС»: «Г10х60, Г30, Г40, Г60, Г80, К10, К15, К8», «Класс защиты»: «2», «Коэффициент мощности драйвера, λ»: «≥0,5», «Коэффициент пульсаций светового потока, %»: «≤5», «Крепление»: «поворотное крепление», «Масса»: «0.146 кг», «Мощность»: «3 Вт», «Объем в упаковке»: «0.001 м3», «Световой поток»: «0 — 249 лм», «Температура эксплуатации»: «от -60 до +50 °C», «УХЛ»: «УХЛ1», «Цветовая температура»: «B (голубой), G (зеленый), R (красный), 3000K, 4000K, 5000K», «Частота»: «50 Гц», «Ширина»: «6.87 см», «Ширина в упаковке»: «10 см» }и несколько SKU вида
Код (Javascript):
«SKU»: [ { «CRI»: «80», «IP»: «IP66», «Артикул»: «MS3-2132-123-128», «Высота»: «6 см», «Высота в упаковке»: «8 см», «Длина»: «6.45 см», «Длина в упаковке»: «10 см», «КСС»: «Г10х60», «Класс защиты»: «2», «Крепление»: «поворотное крепление», «Масса»: «0.146 кг», «Мощность»: «3 Вт», «Объем в упаковке»: «0.001 м3», «Световой поток»: «200 лм», «Тип рассеивателя»: «прозрачный рассеиватель», «УХЛ»: «УХЛ1», «Цветовая температура»: «3000K», «Цена»: «4 000», «Ширина»: «6.87 см», «Ширина в упаковке»: «10 см» }, { «CRI»: «80», «IP»: «IP66», «Артикул»: «MS3-2142-123-128», «Высота»: «6 см», «Высота в упаковке»: «8 см», «Длина»: «6.45 см», «Длина в упаковке»: «10 см», «КСС»: «Г10х60», «Класс защиты»: «2», «Крепление»: «поворотное крепление», «Масса»: «0.146 кг», «Мощность»: «3 Вт», «Объем в упаковке»: «0.001 м3», «Световой поток»: «211 лм», «Тип рассеивателя»: «прозрачный рассеиватель», «УХЛ»: «УХЛ1», «Цветовая температура»: «4000K», «Цена»: «3 600», «Ширина»: «6.87 см», «Ширина в упаковке»: «10 см» } ]для каждого SKU делаю так
PHP:
foreach($json[‘products’] as $k => &$product) { $properties = $product[‘PROPERTIES’]; foreach($product[‘SKU’] as $n => $sku) { foreach($properties as $name => $value) { $product[‘SKU’][$n][$name] = $value; } } } }ну и получаю
Код (Javascript):
«SKU»: [ { «CRI»: «80», «IP»: «IP66», «Высота»: «6 см», «Высота в упаковке»: «8 см», «Гарантия»: «5 лет», «Длина»: «6.45 см», «Длина в упаковке»: «10 см», «КСС»: «Г10х60», «Класс защиты»: «2», «Коэффициент мощности драйвера, λ»: «≥0,5», «Коэффициент пульсаций светового потока, %»: «≤5», «Крепление»: «поворотное крепление», «Масса»: «0.146 кг», «Мощность»: «3 Вт», «Объем в упаковке»: «0.001 м3», «Световой поток»: «0 — 249 лм», «Температура эксплуатации»: «от -60 до +50 °C», «УХЛ»: «УХЛ1», «Цветовая температура»: «B (голубой), G (зеленый), R (красный), 3000K, 4000K, 5000K», «Частота»: «50 Гц», «Ширина»: «6.87 см», «Артикул»: «MS3-2132-123-128», «Световой поток»: «200 лм», «Тип рассеивателя»: «прозрачный рассеиватель», «Цветовая температура»: «3000K», «Цена»: «4 000» }, … ]Вопрос. Как избежать дублей? Пример Цветовая температура
Заранее благодарен.
Вот в этом месте
Код (Text):
if(!array_key_exists($name, $product[‘SKU’][$n])) { $product[‘SKU’][$n][$name] = $value; }не совсем понятна логика.
если в массиве $product[‘SKU’][$n] нет ключа $name
были разные вариации
ОК. Зайдем с другой стороны.
Покажите массивы оригиналы (var_export()) и ожидаемый результат
закрывайте, пробелы разные.