@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 конкатенировать.
  • Вопрос задан
  • 41 просмотр
Решения вопроса 1
rozhnev
@rozhnev Куратор тега PHP
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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы