Сгруппировать массив в PHP
Подскажите как можно из такого массива:
[ELEMENTS] => Array
(
[0] => Array
(
[ID] => 38
[PROPERTIES] => Array
(
[PROP_PRICE] => Array
(
[ID] => 9
[NAME] => Цена
[VALUE] => 100
)
[PROP_PERFORMANCE] => Array
(
[ID] => 10
[NAME] => Производительность
[VALUE] => 300
)
)
)
[1] => Array
(
[ID] => 38
[PROPERTIES] => Array
(
[PROP_PRICE] => Array
(
[ID] => 9
[NAME] => Цена
[VALUE] => 200
)
[PROP_PERFORMANCE] => Array
(
[ID] => 10
[NAME] => Производительность
[VALUE] => 300
)
)
)
[2] => Array
(
[ID] => 38
[PROPERTIES] => Array
(
[PROP_PRICE] => Array
(
[ID] => 9
[NAME] => Цена
[VALUE] => 200
)
[PROP_PERFORMANCE] => Array
(
[ID] => 10
[NAME] => Производительность
[VALUE] => 500
)
)
)
[3] => Array
(
[ID] => 38
[PROPERTIES] => Array
(
[PROP_PRICE] => Array
(
[ID] => 9
[NAME] => Цена
[VALUE] => 300
)
[PROP_PERFORMANCE] => Array
(
[ID] => 10
[NAME] => Производительность
[VALUE] => 600
)
)
)
)
получить примерно массив примерно такой структуры:
Производительность
-300
-500
-600
Цена
-100
-200
-300
Ответы (1 шт):
Автор решения: byalexes
→ Ссылка
Вариантов решения множество, вот например.
$data['ELEMENTS'] = [
[
'ID' => 38,
'PROPERTIES' => [
'PROP_PRICE' => [
'ID' => 9,
'NAME' => 'Price',
'VALUE' => 100
]
],
'PROP_PERFORMANCE' => [
'ID' => 10,
'NAME' => 'Performance',
'VALUE' => 300
]
],
[
'ID' => 39,
'PROPERTIES' => [
'PROP_PRICE' => [
'ID' => 9,
'NAME' => 'Price',
'VALUE' => 200
]
],
'PROP_PERFORMANCE' => [
'ID' => 10,
'NAME' => 'Performance',
'VALUE' => 300
]
],
[
'ID' => 40,
'PROPERTIES' => [
'PROP_PRICE' => [
'ID' => 9,
'NAME' => 'Price',
'VALUE' => 200
]
],
'PROP_PERFORMANCE' => [
'ID' => 10,
'NAME' => 'Performance',
'VALUE' => 500
]
],
[
'ID' => 41,
'PROPERTIES' => [
'PROP_PRICE' => [
'ID' => 9,
'NAME' => 'Price',
'VALUE' => 300
]
],
'PROP_PERFORMANCE' => [
'ID' => 10,
'NAME' => 'Performance',
'VALUE' => 600
]
]
];
$newData = [];
foreach ($data['ELEMENTS'] as $key => $element) {
{
$newData['PROP_PRICE'][] = $element['PROPERTIES']['PROP_PRICE']['VALUE'];
$newData['PROP_PERFORMANCE'][] = $element['PROP_PERFORMANCE']['VALUE'];
}
}
dump($newData);
Результат:
Для проверки значений на уникальность при записи в новый массив используйте функцию in_array или оставьте только уникальные значения после создания массива с помощью функции array_unique
