Ir para conteúdo

POWERED BY:

Arquivado

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

ronaldosdb

Como quebrar ou percorrer essa string

Recommended Posts

Galera, estou montando um sistema para decodificar algumas strings que sao muito utilizadas na minha empresa, mas nao faco ideia de como fazer para comparar 2 segmentos:

 

1) Dado um Ponto de Origem e um Ponto de Chegada (marcados em negrito) - que sao sempre um par, preciso identificar os pares que aparecem no meio desse:

 

Exemplo 1: (Ponto de Origem GIG - Ponto de Chegada POA)

6700 RJ - Galeão(GIG)

6/8/2008 08:00 Porto Alegre(POA)

 

Exemplo 2: (Ponto de Origem GIG - Ponto de Chegada POA) - mas neste caso ha uma parada (ponte) no meio que forma os pares GIG (destino inicial)--> CWB e de CWB --> POA (destino final)

6710 RJ - Galeão(GIG)

6/8/2008 15:05 Curitiba(CWB)

6710 Curitiba(CWB)

6/8/2008 16:55 Porto Alegre(POA)

 

Exemplo 3: (Ponto de Origem GIG - Ponto de Chegada POA) - mas neste caso ha duas paradas (pontes) no meio que formam os pares GIG (destino inicial)--> GRU, GRU-->CWB e CWB-->POA (destino final)

6720 RJ - Galeão(GIG)

6/8/2008 19:10 Sao Paulo(GRU)

6720 Sao Paulo(GRU)

6/8/2008 21:00 Curitiba(CWB)

6730 Curitiba(CWB)

6/8/2008 16:55 Porto Alegre(POA)

 

 

2) Também preciso comparar se dentre o Ponto de Origem e Ponto de Chegada as sequencias de numeros formados com quatro digitos (voos) mudam ou nao:

Creio que se eu conseguir identificar quantas vezes aparecem cada sequencia de 4 numero desses (voo), quantas vezes ela se repete e quantas vezes ela nao se repete, ja me basta

 

Exemplo 1: (sai no voo 6710 e nao muda de voo na parada)

 

6710 RJ - Galeão(GIG)

6/8/2008 15:05 Curitiba(CWB)

6710 Curitiba(CWB)

6/8/2008 16:55 Porto Alegre(POA)

 

Exemplo 2: (sai no voo 6720 mas muda para o voo 6730)

6720 RJ - Galeão(GIG)

6/8/2008 19:10 Sao Paulo(GRU)

6720 Sao Paulo(GRU)

6/8/2008 21:00 Curitiba(CWB)

6730 Curitiba(CWB)

6/8/2008 16:55 Porto Alegre(POA)

 

Complicado ne, bom se alguem puder ajudar

 

Agradeco

 

vleu

 

Ronaldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compreendi hinom, mas o que eu precisava identificar era a sequencia de caracteres e nao a posicao que ela esta na string....

 

Se eu conseguisse jogar num array todas as sequencias de strings (XXX) que estiverem na variavel acaba meu problema, porque dai comparo os indices...

 

 

Alguem saberia me dizer como jogar no array sempre que aparecer uma sequencia de parenteses + tres letras (XXX).

 

Exemplo: texto texto texto (GRU) texto texto texto texto texto (CGH) texto (VQP)

 

Sendo assim, teria no array

 

[0] GRU

[1] CGH

[2] VQP

 

 

Valeu

 

Ronaldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra, tenta inserir algum caractere como "*", ou "/" antes e depois dessas 3 letras

 

dpois, usa a funçao explode:

 

$quebra = explode("*", $string);

 

//como você tm 2 "*", a quebra resultara num array com 3 itens, ae eh soh você pega o segundo deles, lembrando q a contagem começa do 0 xD ($quebra[1])...

 

ae você faz a comparação

 

att,

 

Rick

Compartilhar este post


Link para o post
Compartilhar em outros sites

há várias formas de resolver..

 

como citei acima, o strpos já resolveria parte do problema

 

exemplo

 

<?php
$str = "6720 RJ - Galeão(GIG)";

echo substr( $str, strpos( $str, '(' ) + 1, 3 );
?>

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.