como agrupar todos os usuários em uma lista de produtos se eles tiverem o mesmo produto?

Imrickjames

Tenho uma função que obtém uma matriz como esta:

$userData[] = [
    'userAddress' => $user->getAdress,
    'userEmail' => $user->getEmail(),
    'userPhone' => $user->getPhone(),
    'userFirstname' => $user->getFirstName(),
    'productCode' => $market->getProduct()->getCode(),
];

if ($currentProduct !== $market->getProductCode() or $currentProduct === 0) {
    $marketProduct = $answer->getProduct();
    $productData[] = [
        'productCode' => $marketProduct->getCode(),
        'productModel' => $marketProduct->getModel(),
        'productCollection' => $marketProduct->getCollection(),
        'productBrand' => $marketProduct->getBrand(),
        'productFirstOnlineDate' => $answerProduct->getFirstOnlineDate(),
        'usersData' => $userData,
    ];
}

e esta função eu chamo de um foreach de uma outra função como esta:

$productData = [];

foreach ($datas as $item) {

    ...
    ...
    $productData[] = $this->getAlertReportData($currentProduct);

    ...
}

e quando eu faço um despejo alertDatado foreach eu tenho um resultado como esse, por exemplo

array:5 [▼
  0 => array:3 [▼
    "productCode" => 555
    "productModel" => "productModel"
    "usersData" => array:1 [▼
      0 => array:3 [▼
        "userAddress" => "111 ... paris"
        "userEmail" => "[email protected]"
        "productCode" => 555
      ]
    ]
  ],
  2 => array:3 [▼
    "productCode" => 555
    "productModel" => "productModel"
    "usersData" => array:1 [▼
      0 => array:3 [▼
        "userAddress" => "222 ... nice"
        "userEmail" => "[email protected]"
        "productCode" => 555
      ]
    ]
  ],
  3 => array:3 [▼
    "productCode" => 123
    "productModel" => "productModel"
    "usersData" => array:1 [▼
      0 => array:3 [▼
        "userAddress" => "123 ... monaco"
        "userEmail" => "[email protected]"
        "productCode" => 123
      ]
    ]
  ],
]

e eu tenho um problema, quero agrupar todos os usuários juntos na lista de produção se eles tiverem o mesmo produto. exemplo:

array:5 [▼
      0 => array:3 [▼
        "productCode" => 555
        "productModel" => "productModel"
        "usersData" => array:2 [▼
          0 => array:3 [▼
            "userAddress" => "111 ... paris"
            "userEmail" => "[email protected]"
            "productCode" => 555
          ],
          1 => array:3 [▼
            "userAddress" => "222 ... nice"
            "userEmail" => "[email protected]"
            "productCode" => 555
          ]
        ]
      ],
      2 => array:3 [▼
        "productCode" => 123
        "productModel" => "productModel"
        "usersData" => array:1 [▼
          0 => array:3 [▼
            "userAddress" => "123 ... monaco"
            "userEmail" => "[email protected]"
            "productCode" => 123
          ]
        ]
      ],
    ]

Obrigado pela ajuda.

Elango

Este código pode ajudá-lo,

function unique_array($my_array, $key) { 
    $result = array(); 
    $i = 0; 
    $key_array = array(); 
    
    foreach($my_array as $val) { 
        if (!in_array($val[$key], $key_array)) { 
            $key_array[$i] = $val[$key]; 
            $result[$i] = $val; 
        } 
        $i++; 
    } 
    return $result; 
}  


$getAllProducts = array([
        'productCode' => 111,
        'productModel' => 'productModel 1',
        'productCollection' => 'productCollection 1',
        'productBrand' => 'productBrand 1',
        'productFirstOnlineDate' => '2020'],
               
        ['productCode' => 222,
        'productModel' => 'productModel 2',
        'productCollection' => 'productCollection 2',
        'productBrand' => 'productBran 2',
        'productFirstOnlineDate' => '2020'],

        ['productCode' => 111,
        'productModel' => 'productModel 3',
        'productCollection' => 'productCollection 3',
        'productBrand' => 'productBran 3',
        'productFirstOnlineDate' => '2020'],

        ['productCode' => 444,
        'productModel' => 'productModel 4',
        'productCollection' => 'productCollection 4',
        'productBrand' => 'productBran 4',
        'productFirstOnlineDate' => '2020'],

        ['productCode' => 555,
        'productModel' => 'productModel 5',
        'productCollection' => 'productCollection 5',
        'productBrand' => 'productBran 5',
        'productFirstOnlineDate' => '2020'],
);

$getAllProduct = unique_array($getAllProducts,'productCode');

foreach($getAllProduct as  &$row ){
    $Current_Code = $row['productCode'];
    $getUsers = getUsers($Current_Code);
    $row['userData'] = $getUsers;
}

function getUsers($Current_Code){
    $userData = array([
        'userAddress' => "111 ... paris",
        'userEmail' => "[email protected]",
        'productCode' => 111 ],
        [
            'userAddress' => "222 ... paris",
            'userEmail' => "[email protected]",
            'productCode' => 222],
        [
            'userAddress' => "222 ... paris",
            'userEmail' => "[email protected]",
            'productCode' => 222],
        [
            'userAddress' => "333 ... paris",
            'userEmail' => "[email protected]",
            'productCode' => 333],
        [
            'userAddress' => "333 ... paris",
            'userEmail' => "[email protected]",
            'productCode' => 333],
        [
            'userAddress' => "444 ... paris",
            'userEmail' => "[email protected]",
            'productCode' => 444],
        [
            'userAddress' => "555 ... paris",
            'userEmail' => "[email protected]",
            'productCode' => 555]
        );

    foreach($userData as  $key => $row){        
        if ( $row['productCode'] != $Current_Code  ) {
             unset($userData[$key]);
        }
    }
    return $userData;
}
print_r($getAllProduct);

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Dados do MySQL - Se os usuários tiverem o mesmo número de pontos - mostre em uma linha

Como exibir todos os 1 produtos principais da lista de coleção em uma página?

Como posso mostrar todos os trabalhos do Jenkins em uma visualização, mesmo se eles estiverem contidos em pastas?

Compare a lista usando uma variável diferente se os itens da lista tiverem o mesmo valor em uma variável

Como remodelar dataframe se eles tiverem o mesmo índice?

Como verificar se todos os elementos de uma lista estão em outra lista enquanto pula os elementos desnecessários

GA BigQuery - os usuários que compraram o produto x também compraram os produtos abc, em seguida, o filtro lista apenas as transações completas em que x fazia parte de uma transação

Java Arraylist <Object> deseja mesclar os objetos se eles tiverem o mesmo valor de propriedade

Soma os valores na matriz de hash se eles tiverem o mesmo valor

Elimine os elementos da matriz se eles tiverem o mesmo valor de atributo

Se o mesmo script de utilitário for verificado em diretórios SCM diferentes, mas deve ser o mesmo em todos os lugares, como posso verificar se eles são iguais?

r: Como mesclar grupos de dois dataframes separados apenas se eles tiverem o mesmo conteúdo

Imprime todos os itens da lista de matrizes em uma linha se eles não forem Java vazios

Lista todos os usuários em uma função

Como salvar todos os campos de um registro Rails mesmo se eles não forem alterados

Como posso obter todos os subconjuntos disjuntos de uma lista de elementos e, se juntar, é o mesmo que a lista inicial em python?

Em Woocommerce, como encontrar todos os produtos para os quais um determinado produto é uma venda cruzada?

Python x Tweepy: como obter tweets de todos os usuários contidos em uma lista

Juntando duas tabelas, clientes e pedidos, para obter a lista de todos os clientes e o número do pedido SE eles tiverem um pedido

Como definir o produto como 0 se for um produto de uma lista vazia em Julia?

iOS XMPP Como exibir todos os usuários em uma única seção no tableview

Adicione o mesmo índice de uma lista se eles forem semelhantes em outro índice específico

Estou tentando enviar uma mensagem privada para todos em um canal de discórdia se eles tiverem uma determinada função

Como imprimir todos os produtos não repetidos de uma lista de fatores

Como verificar se todos os elementos em uma lista de nós têm a mesma classe ou o mesmo valor de propriedade de estilo?

Como analisar dados JSON se eles tiverem caracteres de escape em resposta a dardo ou vibração?

Existe alguma maneira de direcionar todos os <th> em uma tabela e declarar o mesmo atributo para todos eles?

Como encontrar os pares de usuários que compraram o mesmo produto?

Seleção de uma lista de todos os usuários não distintos que se enquadram em um critério SQL

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  3. 3

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  4. 4

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  5. 5

    Gerenciar recurso shake de Windows Aero com barra de título personalizado

  6. 6

    Como obter dados API adequados para o aplicativo angular?

  7. 7

    UITextView não está exibindo texto longo

  8. 8

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  9. 9

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  10. 10

    Usando o plug-in Platform.js do Google

  11. 11

    Como posso modificar esse algoritmo de linha de visada para aceitar raios que passam pelos cantos?

  12. 12

    Dependência circular de diálogo personalizado

  13. 13

    Coloque uma caixa de texto HTML em uma imagem em uma posição fixa para site para desktop e celular

  14. 14

    iOS: como adicionar sombra projetada e sombra de traço no UIView?

  15. 15

    Como usar a caixa de diálogo de seleção de nomes com VBA para enviar e-mail para mais de um destinatário?

  16. 16

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  17. 17

    How to create dynamic navigation menu select from database using Codeigniter?

  18. 18

    Converter valores de linha SQL em colunas

  19. 19

    ChartJS, várias linhas no rótulo do gráfico de barras

  20. 20

    用@StyleableRes注释的getStyledAttributes。禁止警告

  21. 21

    não é possível adicionar dependência para com.google.android.gms.tasks.OnSuccessListener

quentelabel

Arquivo