Jump to content
ronaldosdb

Comparar itens em array multidimensional

Recommended Posts

Pessoal, bom dia

 

Tenho um array multidimensional chamado cesta, com as seguintes posicoes (qtdpax, evento, categoria, data,nome_categoria)

 

Gostaria de saber como faco para

 

1) Comparar se existem eventos diferentes na posicao evento...Ex: o array vem com 6 preenchimentos conforme abaixo e constam os eventos X,Y,Z ou consta somente o evento X

 

2) Como comparar qual a posicao tem o menor qtdpax?

 

Sei que deve ser uma duvida simples, talvez resolva com foreach mas nao to sabendo percorrer todo o array e comparar as posicoes.

 

Array
(
    [0] => Array
        (
            [qtdpax] => 1
            [evento] => 5
            [categoria] => 52
            [data] => 2018-03-23
            [nome_categoria] => TRANSFER TRANSAMÉRICA HIGIENÓPOLIS - AUTÓDROMO DE INTERLAGOS - TRANSAMÉRICA HIGIENÓPOLIS - SAÍDA ÀS 12H30
        )

    [1] => Array
        (
            [qtdpax] => 1
            [evento] => 5
            [categoria] => 38
            [data] => 2018-03-24
            [nome_categoria] => TRANSFER HILTON MORUMBI - AUTÓDROMO DE INTERLAGOS - HILTON MORUMBI - SAÍDA ÀS 12H30
        )

    [2] => Array
        (
            [qtdpax] => 4
            [evento] => 5
            [categoria] => 38
            [data] => 2018-03-25
            [nome_categoria] => TRANSFER HILTON MORUMBI - AUTÓDROMO DE INTERLAGOS - HILTON MORUMBI - SAÍDA ÀS 12H30
        )

    [3] => Array
        (
            [qtdpax] => 1
            [evento] => 5
            [categoria] => 55
            [data] => 2018-03-23
            [nome_categoria] => TRANSFER TRANSAMÉRICA HIGIENÓPOLIS - AUTÓDROMO DE INTERLAGOS - TRANSAMÉRICA HIGIENÓPOLIS - SAÍDA ÀS 14H45
        )

    [4] => Array
        (
            [qtdpax] => 2
            [evento] => 6
            [categoria] => 78
            [data] => 2018-05-24
            [nome_categoria] => CONVIDADOS - 1º LOTE
        )

    [5] => Array
        (
            [qtdpax] => 1
            [evento] => 10
            [categoria] => 34
            [data] => 2018-04-04
            [nome_categoria] => TRANSFER GRAND HYATT - EVENTO - GRAND HYATT
        )

    [6] => Array
        (
            [qtdpax] => 4
            [evento] => 10
            [categoria] => 35
            [data] => 2018-04-03
            [nome_categoria] => TRANSFER NOVOTEL BARRA - EVENTO - NOVOTEL BARRA
        )

)

 

Share this post


Link to post
Share on other sites

Olá!

Veja se isso te ajuda.

 

<?php // Com array_column você separa apenas a coluna que precisar: qtdpax
$qtdpaxes = array_column($arrays, 'qtdpax');

// com asort você ordena do menor para o maior
asort($qtdpaxes);

// mostra os qtdpaxes na tela:
print_r($qtdpaxes);
/* os menores são os índices zero, um, três e cinco
Array
(
    [0] => 1
    [1] => 1
    [3] => 1
    [5] => 1
    [4] => 2
    [2] => 4
    [6] => 4
)
*/

// Com array_column você separa apenas a coluna que precisar: evento
$eventos = array_column($arrays, 'evento');

// Com array_unique você remove os valores duplicados
print_r(array_unique($eventos));
/* Os eventos, sem repetição são o cinco, seis e o 10
Array
(
    [0] => 5
    [4] => 6
    [5] => 10
)
*/

// Com array_count_values você conta quantas vezes um valor se repete
print_r(array_count_values($eventos));
/* o evento cinco se repete 4 vezes, o seis não se repete, o dez se repete 2 vezes
Array
(
    [5] => 4
    [6] => 1
    [10] => 2
)
*/

 

 

 

  • Obrigado! 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.