Ir para conteúdo
Fórum Script Brasil
  • 0

Busca em array [RESOLVIDO]


EasyRider

Pergunta

Amigos...

Estou trabalhando em um projeto à nível laboratório que acessa o firewall de um ambiente linux, mas, esbarrei na falta de conhecimento aqui e estou tendo dificuldades em identificar a chave e "pegar" o valor referente à ela pois, o valor nem sempre vem na mesma chave...

Eis a array:

Array ( 
[0] => !re 
[1] => =.id=*540 
[2] => =name=Joao Pedro 
[3] => =target-addresses=192.168.0.10/32 
[4] => =interface=all 
[5] => =parent=none 
[6] => =packet-marks= 
[7] => =direction=both 
[8] => =priority=8 
[9] => =queue=default-small/default-small 
[10] => =limit-at=0/0 
[11] => =max-limit=2M/2M 
[12] => =burst-limit=0/0 
[13] => =burst-threshold=0/0 
[14] => =burst-time=0s/0s
[15] => =total-queue=default-small 
[16] => =invalid=false 
[17] => =dynamic=false 
[18] => =disabled=false    <- Termo que eu preciso identificar a chave e separar o valor
[19] => !done )

Aqui, neste caso, eu precisaria identificar o número da chave que contenha o valor "=disabled=", recuperar a chave na íntegra e depois explodir o "=disabled=" para obter o valor que eu preciso(se é true ou false).

Alguém sabe como fazer isso ?

Agradeço pela ajuda !

Editado por EasyRider
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

bem se você der echo no array[18] e ele imprimi exatamente =disabled=false

de um explode nele pondo o = como delimitador assim ele vai te trazer a palavra disabled e false

sabendo que a disabled sempre vem no primeiro indice do explode sendo assim o que você precisa é cria um If onde o indicie 0 (ou seja disabled) é = a disabled para ter certeza que não teve problema no explod e se o indice 1 que vai ser true ou false

Link para o comentário
Compartilhar em outros sites

  • 0
bem se você der echo no array[18] e ele imprimi exatamente =disabled=false

de um explode nele pondo o = como delimitador assim ele vai te trazer a palavra disabled e false

sabendo que a disabled sempre vem no primeiro indice do explode sendo assim o que você precisa é cria um If onde o indicie 0 (ou seja disabled) é = a disabled para ter certeza que não teve problema no explod e se o indice 1 que vai ser true ou false

Pois é, amigo... se fosse "linear" seria simples assim como você falou... mas, os resultados(pelo menos os últimos da lista) são DINÂMICOS dependendo da quantidade de informação que está na tabela do firewall...

O valor "=disabled=" em alguns clientes vem na chave [16], outros, [17] e alguns casos, até bem mais que isso...

Logo, eu preciso PROCURAR em qual chave está o valor "=disabled=", quando eu o achar, preciso identificá-lo... tipo: Ahh... o disabled tá na chave 17(ou 16, ou 21... enfim) pra depois eu explodi-lo...

Capitche ?

Link para o comentário
Compartilhar em outros sites

  • 0
Supondo que isto esteja em um array chamado $lista:

foreach($lista as $ind=>$val){
    if(strstr($val,'=disabled=')){
        $dados = explode('=', $val);
        break;
    }
}

Perfeito, Edgar...

Funcionou redondinho...

Me livrou de uma POG bizarra que eu estava montando aqui... rs.

Estava usando o strstr, mas, ao invés de foreach, eu estava contando as chaves da array e jogando num for...

Obrigado.

Bom fim de semana !

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...