Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
queria ajuda para definir qual a última ocorrência
<?php
$texto = 'aaaaaaa01aaaaaaa01aaaaaa02';
$busca = array ('00','01','02','03');
$cont = sizeof($busca);
for ($i = 0; $i<$cont; $i++) {
$num = $busca[$i];
$pos = strripos($texto, $num);
if ($pos == true) {
echo "Foi encontrado ($num) em ($pos)<br>";
}
}
?>
no exemplo acima ele encontra o último "01" eo último "02"
porem quero saber apenas o último de todos ou seja o "02".
teria como verificar tipo com IF á maior posição dada pelo ($pos) dai teria a última ocorrência xD
mais não sei como, ja quebrei a cabeça aki mano.
>
Não sei se entendi bem o que você quer.
Por isso fiz duas possíveis tentativas.
var_dump( substr( $texto, strrpos( $texto, '01' ), 2 ) ); // string(2) "01"
var_dump( strrpos( $texto, '01' ) ); // int(16)
amigo vlw pela atenção mais isso não tem nada á ver =(
no meu exemplo acima ele imprime isso..
Foi encontrado (01) em (16)
Foi encontrado (02) em (24)
mais..!!! queria que só fosse impresso "Foi encontrado (02) em (24)" por q ele éo último, tendeu ?
>
queria que só fosse impresso "Foi encontrado (02) em (24)" por q ele éo último, tendeu ?
<?php
$texto = 'aaaaaaa01aaaaaaa01aaaaaa02';
$busca = array ('00','01','02','03');
$p = null;
$o = -1;
foreach ( $busca as $i ) {
$c = strrpos( $texto , $i );
if ( $c !== false && $c > $o ) {
$p = $i;
$o = $c;
}
}
if ( $o != -1 ) {
echo 'Foi encontrado ' , $p , ' em ' , $o;
}Caramba João, vlw mesmo cara ;)
>
Caramba João, vlw mesmo cara ;)
Você ainda pode fazer o seguinte ajusta de otimização:
<?php
$texto = 'aaaaaaa01aaaaaaa01aaaaaa02';
$busca = array ('00','01','02','03');
$p = null;
$o = -1;
$l = strlen( $texto );
foreach ( $busca as $i ) {
$c = strrpos( $texto , $i );
if ( $c !== false && $c > $o ) {
$p = $i;
$o = $c;
if ( $c + strlen( $i ) == $l ) {
//Evita que o loop continue caso a posição do elemento somado ao
//seu comprimento seja igual ao tamanho do texto.
break;
}
}
}
if ( $o != -1 ) {
echo 'Foi encontrado ' , $p , ' em ' , $o;
}>
Você ainda pode fazer o seguinte ajusta de otimização:
Da hora João, brigado pela força
Não sei se entendi bem o que você quer.
Por isso fiz duas possíveis tentativas.
var_dump( substr( $texto, strrpos( $texto, '01' ), 2 ) ); // string(2) "01"
var_dump( strrpos( $texto, '01' ) ); // int(16)