@MrFreeman94

Как удалить первое значение и конкатенировать второе в многомерном массиве?

Ребята, всем привет. Нужна помощь с многомерными массивами! Как удалить повторяющиеся значения из массива?
Есть массив $arr_test в нем
array(14) { 
         [0]=> array(2) {
              ["id_product_attribute"]=> string(2) "60" 
              ["attribute_name"]=> string(1) "S" } 
         [1]=> array(2) {
              ["id_product_attribute"]=> string(2) "59" 
              ["attribute_name"]=> string(1) "M" } 
         [2]=> array(2) {
              ["id_product_attribute"]=> string(2) "57" 
              ["attribute_name"]=> string(1) "M" } 
         [3]=> array(2) {
              ["id_product_attribute"]=> string(2) "56" 
              ["attribute_name"]=> string(2) "XL" } 
         [4]=> array(2) {
              ["id_product_attribute"]=> string(2) "58" 
              ["attribute_name"]=> string(2) "XL" } 
         [5]=> array(2) {
              ["id_product_attribute"]=> string(2) "56" 
              ["attribute_name"]=> string(4) "Grey" } 
         [6]=> array(2) {
              ["id_product_attribute"]=> string(2) "59" 
              ["attribute_name"]=> string(4) "Grey" } 
         [7]=> array(2) {
              ["id_product_attribute"]=> string(2) "57" 
              ["attribute_name"]=> string(4) "Grey" } 
         [8]=> array(2) {
              ["id_product_attribute"]=> string(2) "58" 
              ["attribute_name"]=> string(4) "Grey" } 
         [9]=> array(2) {
              ["id_product_attribute"]=> string(2) "60" 
              ["attribute_name"]=> string(6) "Yellow" } 
         [10]=> array(2) {
              ["id_product_attribute"]=> string(2) "56" 
              ["attribute_name"]=> string(7) "40x60cm" } 
         [11]=> array(2) {
              ["id_product_attribute"]=> string(2) "57" 
              ["attribute_name"]=> string(7) "40x60cm" } 
         [12]=> array(2) {
              ["id_product_attribute"]=> string(2) "58" 
              ["attribute_name"]=> string(7) "60x90cm" } 
         [13]=> array(2) {
              ["id_product_attribute"]=> string(2) "59" 
              ["attribute_name"]=> string(7) "60x90cm" }
    }


Так вот, как можно id_product_attribute удалить повторяющиеся, а attribute_name конкатенировать.
  • Вопрос задан
  • 40 просмотров
Решения вопроса 1
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
Можно пройтись array_reduce'ом:
$result = array_reduce(
	$data,
	function($res, $el) {
		if (isset($res[$el["id_product_attribute"]])) {
			$res[$el["id_product_attribute"]] .= ", " . $el["attribute_name"];
		} else {
			$res[$el["id_product_attribute"]] = $el["attribute_name"];
		}
		return $res;
	},
	[]
);

var_export($result);


Share PHP code
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
LAPTOP.RU Москва
от 150 000 до 190 000 ₽
LAPTOP.RU Кострома
от 25 000 до 65 000 ₽
LAPTOP.RU Москва
от 130 000 до 170 000 ₽
08 мар. 2021, в 10:02
75000 руб./за проект
08 мар. 2021, в 10:00
700 руб./за проект
08 мар. 2021, в 08:37
3000 руб./за проект