@ganjo888

Как получить массив без повторяющих ключей и с верными значениями?

$data = [
    [
        'organization' => 'Nike',
        'reviewed'         => ['кросовки' => 1, 'бутцы' => 2],
    ],
    [
        'organization' => 'Adidas',
        'reviewed'         => ['кросовки' => 3, 'сланцы' => 4, 'бутцы' => 5],
    ],
];

в результате хочу получить такой массив
$res = [
    'categories' => [
        ['бутцы', 'кросовки', 'сланцы'],
    ],
    'reviewed'   => [
        [2, 1, null],
        [5, 3, 4],
    ],
]

начал получил все категории и дальше не понимаю что и как делать... Подскажите плиз как это всё делается
$newData = [];
foreach ($data as $datum) {
    foreach ($datum['reviewed'] as $key => $item) {
        $newData['categories'][] = $key;
    }
}
$categories = array_unique($newData['categories']);
  • Вопрос задан
  • 113 просмотров
Решения вопроса 1
@PeeX
$nextIndex = 0 ;
$map = [];
$categories = [];
$reviewed = [];
foreach ($data as $datum) {
    $crev = [];
    foreach ($datum['reviewed'] as $key => $item) {
        if ( !isset( $map[ $key ] ) ) {
            $map[ $key ] = $nextIndex ;
            $catigories[ $nextIndex ] = $key ;
            $nextIndex++ ;
        }
        $cIndex = $map[ $key ];
        $crev[ $cIndex ] = $item ;
    }
    $reviewed[] = $crev ;
}


не проверял но думаю должно быть примерно что вы хотите
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
26 апр. 2024, в 10:21
1200 руб./в час
26 апр. 2024, в 10:10
1000 руб./за проект