Utilizando a função sscanf podemos ler dados formatados contidos em uma string.
Os identificadores de formatação foram vistos em
PHP Básico: Saída de Dados.
Sintaxe
sscanf(string $string, string $format, mixed &...$vars): array|int|null
Onde
$string: string de entrada para leitura
$format: string contendo identificadores de formatação:
D : número decimal
i : número inteiro(integer)
n: número de caracteres processados
s : interrompe a leitura em qualquer caracteres de espaço
c : caracter
* : omite atribuição de valor lido
Retorno
Vetor contendo valores lidos de $string respeitando o formato $format se $vars omitido.
Se o número de identificadores for menor das variáveis informadas em $vars, elementos null serão retornados.
Exemplo 3
//main.php
<?php
$preco;
$produto;
// %s %*s %*2c%f
$str = "Tênis custa R$10.99";
sscanf($str,"%s %*s %*2c%f",$produto,$preco); //%*2c descarta 2 caracteres
echo $produto,":",$preco,"\n";
$array = sscanf($str,"%s %*s %*2c%f");
var_dump($array);
?>
Saída
Tênis:10.99
array(2) {
[0]=>
string(6) "Tênis"
[1]=>
float(10.99)
}