Tema: Cadenas PHP
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 24/03/2019, 23:59
Avatar de xfxstudios
xfxstudios
 
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Cadenas PHP

Tambien esta el lado largo que es lo que buscas creo, en ese caso se me ocurre algo así:

Código PHP:
Ver original
  1. //Cadena que llega
  2. $cadena = "125+487*85/2";
  3. //Array de Salida
  4. $salida = [];
  5. //Simbolos
  6. $simbolos = ['+','/','*','-'];
  7. //Descomponemos la cadena entrante
  8. $can = str_split($cadena);
  9. //Grupo Temporal
  10. $temp = "";
  11.  
  12. //Recorremos el array resultante del string
  13. for($i=0; $i<count($can); $i++){
  14.     //Si no es un simbolo lo agregamos a la variable temp
  15.     if(!in_array($can[$i],$simbolos)){
  16.         $temp .= $can[$i];
  17.     }else{
  18.         //si es un simbolo agregamos los elementos al array de salida
  19.         array_push($salida, $temp);
  20.         array_push($salida, $can[$i]);
  21.         $temp = "";
  22.     }
  23.     //Si llegamos al final de recorrido y la variable temp esta llena la agregamos al array de salida
  24.     if($i+1==count($can) && $temp !=""){
  25.         array_push($salida,$temp);
  26.     }
  27. };
  28.  
  29. var_dump($salida);

eso retorna el siguiente array:

array(7) {
[0]=> string(3) "125"
[1]=> string(1) "+"
[2]=> string(3) "487"
[3]=> string(1) "*"
[4]=> string(2) "85"
[5]=> string(1) "/"
[6]=> string(1) "2"
}

claro debe haber una manera más simple, pero es la que se me ocurre a esta hora.
__________________
[email protected]
HITCEL