@Emmet1

Как распарсить многомерный массив, убирая дубли?

Добрый день!
У меня есть многомерный массив
Array ( 

  [0]
    ( 
    [name] => Найк
    [desc] => Кроссовки 
    )
  [1]
    ( 
    [name] => Адидас
    [desc] => Кеды
    ) 
    [2]
    ( 
      [name] => Найк
      [desc] => Тапки 
    ) 
}
  )


На выходе мне нужно получить две строки:
Марка: Найк, Адидас
Тип: Кроссовки, Кеды, Тапки.

То есть, чтобы повторяющиеся значение не выводились дважды.
  • Вопрос задан
  • 91 просмотр
Пригласить эксперта
Ответы на вопрос 2
alams_stoyne
@alams_stoyne
Full Stack Developer - #PHP #CSS #JS #DB
Используйте язык правильно:
<?php
$arr = [
    [
        'name' => 'Найк',
        'desc' => 'Кросовки',
    ],
    [
        'name' => 'Адидас',
        'desc' => 'Кеды',
    ],
    [
        'name' => 'Найк',
        'desc' => 'Тапки',
    ],
];
$result = [
    'mark' => array_unique(array_column($arr, 'name')),
    'type' => array_unique(array_column($arr, 'desc'))
];
?>
Ответ написан
Комментировать
cr1gger
@cr1gger
Все дороги ведут в Рим — встретимся в Риме!
$arr = [
            [
                'name' => 'Найк',
                'desc' => 'Кросовки',
            ],
            [
                'name' => 'Адидас',
                'desc' => 'Кеды',
            ],
            [
                'name' => 'Найк',
                'desc' => 'Тапки',
            ],
        ];
function sortArr(array $arr){
    $result = [
        'mark' => [],
        'type' => []
        ];
    foreach($arr as $item)
    {
        if (!in_array($item['name'], $result['mark'])) $result['mark'][] = $item['name'];
        if (!in_array($item['desc'], $result['type'])) $result['type'][] = $item['desc'];
    }
    return $result;
}
var_dump(sortArr($arr));
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы