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.