Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Obtener siguiente consecutivo faltante

Estas en el tema de Obtener siguiente consecutivo faltante en el foro de PHP en Foros del Web. hola amigos, tengo una duda... en un arreglo tengo 6 valores (que pueden ser 100, 500, etc) de la sigguiente forma: 0118050001 0118050002 0118050005 0118050019 ...
  #1 (permalink)  
Antiguo 07/05/2018, 01:23
 
Fecha de Ingreso: octubre-2008
Mensajes: 147
Antigüedad: 16 años, 1 mes
Puntos: 3
Pregunta Obtener siguiente consecutivo faltante

hola amigos,

tengo una duda... en un arreglo tengo 6 valores (que pueden ser 100, 500, etc) de la sigguiente forma:

0118050001
0118050002
0118050005
0118050019
0118050020
0118050022

SIEMPRE LOS FOLIOS INICIAN CON "011805" y le siguen 4 dígitos (0000)

y con PHP debo determinar el siguiente folio consecutivo pero no del último folio, sino del primero que haya roto la cadena consecutiva, es decir, del 01 sigue el 02 y luego el 03 pero en vez del 03 se lanza hasta el 05 y PHP debe indicarme que el que sigue es el 03

dándome como respuesta:

0118050003

¿Alguien podría echarme una mano en cómo podría hacerle?
  #2 (permalink)  
Antiguo 07/05/2018, 02:35
Avatar de julia2021  
Fecha de Ingreso: diciembre-2014
Ubicación: Mexico
Mensajes: 152
Antigüedad: 9 años, 11 meses
Puntos: 11
Sonrisa Respuesta: Obtener siguiente consecutivo faltante

Código PHP:
$folios = ['1','2','5','19','20','22'];

$cantidad count($folios);

for (
$i 0$i $cantidad$i++)

  
$k $i+1;
  
$siguiente_en_el_array $folio[$k];
  
$siguiente_en_teoria   $folio[$i]+1;
  
  if (
$folio[$i] == $folios[$siguiente]) {
     
     echo 
"El folio ".$folios[$siguiente_en_el_array]."es correcto";

  } else {

     echo 
"El folio faltante es el: ".$siguiente_en_teoria;

  }
endfor 
  #3 (permalink)  
Antiguo 07/05/2018, 05:54
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 4 meses
Puntos: 263
Respuesta: Obtener siguiente consecutivo faltante

tomando lo que julia te recomienda, seria algo así:

Código PHP:
Ver original
  1. $folios = ['1','2','5','19','20','22'];
  2.  
  3. asort($folios);
  4. $ultimo = end($folios);
  5.  
  6. for($i=0; $i < $ultimo; $i++){
  7.     $actual = $i+1;
  8.  
  9.   echo (in_array($actual,$folios)) ? "<li>El folio {$actual} es correcto </li>" :  "<li>El folio faltante es el: {$actual} </li>";
  10. };

retorna la siguiente lista:

El folio 1 es correcto
El folio 2 es correcto
El folio faltante es el: 3
El folio faltante es el: 4
El folio 5 es correcto
El folio faltante es el: 6
El folio faltante es el: 7
El folio faltante es el: 8
El folio faltante es el: 9
El folio faltante es el: 10
El folio faltante es el: 11
El folio faltante es el: 12
El folio faltante es el: 13
El folio faltante es el: 14
El folio faltante es el: 15
El folio faltante es el: 16
El folio faltante es el: 17
El folio faltante es el: 18
El folio 19 es correcto
El folio 20 es correcto
El folio faltante es el: 21
El folio 22 es correcto
__________________
[email protected]
HITCEL
  #4 (permalink)  
Antiguo 07/05/2018, 10:15
 
Fecha de Ingreso: octubre-2008
Mensajes: 147
Antigüedad: 16 años, 1 mes
Puntos: 3
Respuesta: Obtener siguiente consecutivo faltante

Cita:
Iniciado por julia2021 Ver Mensaje
Código PHP:
$folios = ['1','2','5','19','20','22'];

$cantidad count($folios);

for (
$i 0$i $cantidad$i++)

  
$k $i+1;
  
$siguiente_en_el_array $folio[$k];
  
$siguiente_en_teoria   $folio[$i]+1;
  
  if (
$folio[$i] == $folios[$siguiente]) {
     
     echo 
"el folio ".$folios[$siguiente_en_el_array]."es correcto";

  } else {

     echo 
"el folio faltante es el: ".$siguiente_en_teoria;

  }
endfor 
:-d muchas gracias !!!

Etiquetas: consecutivo, siguiente
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:59.