Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/06/2012, 05:20
davidadanu
 
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 12
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Posicion de un valor en una cadena

Revisa este link a ver si te puede ayudar el método:
http://www.php.net/manual/es/function.strpos.php


Te escribo un ejemplo de lo que creo que quieres hacer:
Código:
$strCadena = "452 652 321 458;5864 474 152 458;456 258 475 6952;"; 
$charDelimitador = ";";

// Array para guardar las posiciones encontradas
$arrPosiciones = array();

// Posición del índice actual en la cadena (comenzamos por el principio)
$intPosicionActual = 0;

// Variable que guardará el índice de la ocurrencia, comienza siendo true para que entre en el while
$pos = true;

// Mientras encuentre el delimitador (no devuelva false)
while ($pos != false){

  // Buscamos la posición del delimitador en la cadena a partir de la posición actual
  $pos = strpos($strCadena, $charDelimitador, $intPosicionActual);

  // Si ha encontrado el delimitador
  if ($pos != false){

    // metemos la posición en el array
    array_push($arrPosiciones, $pos);

     // marcamos como posición actual el índice encontrado
    $intPosicionActual = $pos + 1;

    // Si la posición actual es mayor al tamaño de la cadena
    if ($pos > strlen($strCadena)){

      // Marcamos la posición actual como false para que salga del while (para evitar desbordamiento)
      $pos = false;
    }
  }
}

// Para cada posición guardada en el array
for($i=0; $i < sizeOf($arrPosiciones); $i++){
  
  // Imprimimos las posiciones encontradas por orden
  echo $i.'º ocurrencia en el índice '.$arrPosiciones[$i].'<br>';
}
PD: El código no lo he probado así que puede tener errores, pero creo que te ayudará a comprender cómo hacerlo.

Última edición por davidadanu; 13/06/2012 a las 05:46 Razón: Correcciones en el código