Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

oprogramadoriniciante

Filtro Array Multidimensional

Recommended Posts

Bom galera... Preciso de uma ajuda...

 

Eu trabalho com uma revenda da KingHost, e a mesma possui uma API que utilizo para cadastrar meus clientes por um formulário externo (Para eu não precisar entrar no Painel de Controle da KingHost, Toda vez que tiver que cadastrar um novo cliente)... Assim o próprio cliente faz seu cadastro.

 

Nesse cadastro, eu aproveito e gravo alguns NOME e EMAIL do cliente em meu Banco de dados pessoal.

 

Além de cadastrar clientes, eu preciso fazer alguns processos através da API... Porém, para esses processos, eu preciso do ID do cliente cadastrado (Eu não tenho o ID dos clientes cadastrados na revenda através da API).

 

A única forma de saber o ID de um cliente é através de requisições pela API. Porém, essa requisição retorna uma array multidimensional:

Array (
[status] => ok
[body] => Array (
[180770] => Array (
             [idCliente] => 180770
                        [clienteTipo] => I
                        [clienteEmpresa] =>
                        [clienteNome] => Julio ramos
                        [clienteCPFCNPJ] =>
                        [clienteEmail] => julioramos@live.com
                        [clienteEmailCobranca] => julioramos@live.com
                        [clienteFone] => 555100000000
                        [clienteFax] => 555100000001
                        [clienteEndereco] => Nome da Rua
                        [clienteBairro] =>
                        [clienteCidade] => DUQUE DE CAXIAS
                        [clienteEstado] => RJ
                        [clienteCEP] => 44587421
                        [clienteLimiteMapeamento] => 1
                        [clienteLimiteSubdominio] => 20
                        [clienteLimiteMysql] => 20
                        [clienteLimiteMssql] => 0
                        [clienteLimitePgsql] => 0
                        [clienteLimiteFirebird] => 0
                        [clienteLimiteFTPADD] => 5
                        [clienteUniBox] => ON
                        [clienteAcessoFTP] => ON
                        [clienteAcessoDownloadBackup] => ON
                        )
                        
            [180118] => Array (
             [idCliente] => 180118
                        [clienteTipo] => F
                        [clienteEmpresa] =>
                        [clienteNome] =>Adriano pereira
                        [clienteCPFCNPJ] =>
                        [clienteEmail] => adiel@gmail.com
                        [clienteEmailCobranca] => adiel@gmail.com
                        [clienteFone] => (21) 984800447
                        [clienteFax] => (0)
                        [clienteEndereco] => Avenida Automóvel Clube 690 Cs 2
                        [clienteBairro] =>
                        [clienteCidade] =>
                        [clienteEstado] => RJ
                        [clienteCEP] => 25260-050
                        [clienteLimiteMapeamento] => 0
                        [clienteLimiteSubdominio] => 0
                        [clienteLimiteMysql] => 0
                        [clienteLimiteMssql] => 0
                        [clienteLimitePgsql] => 0
                        [clienteLimiteFirebird] => 0
                        [clienteLimiteFTPADD] => 0
                        [clienteUniBox] => ON
                        [clienteAcessoFTP] => ON
                        [clienteAcessoDownloadBackup] => ON
                        )
                    )
        )

Como eu tenho o email dos clientes em meu banco de dados pessoal... Eu quero filtrar essa array utilizando o email do cliente para saber qual é o ID dele.

 

Bom... Pra ficar mais fácil de entender:

 

Se esse array fosse o banco de dados, o código seria:

$SQL = mysql_query("SELECT * FROM array WHERE [clienteEmail]='adiel@gmail.com'");

while($result = mysql_fetch_object($SQL)){
echo "ID: $result->id";
}

Só que não é Banco de dados... kkkkk

 

Como faço pra imprimir somente o ID de um cliente em questão que esta dentro do array em questão??

 

 

Espero que tenham entendido meu dilema e agradeço desde já pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lucas, Obrigado pela resposta...

Resolvi a questão com a seguinte função:

function find_items($array,$findwhat,$value,$found=array()){
    foreach($array as $k=>$v){
            if(is_array($v)){
                 $result = find_items($v,$findwhat,$value,$found);
                if($result === true){
                    $found[] = $v;     
                }else{
                    $found = $result;
                }
            }else{
                if($k==$findwhat && $v==$value){
                    return TRUE;
                }
            }
    }
    return $found;
    
}
$cliente = find_items($array,'clienteEmail','emaildoclienteapesquisar@email.com');

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.