Предполагая, что $_POST["partecipanti"])
является строкой, поскольку вы используете ее непосредственно в своем примере, а второй параметр preg_match_all является строкой.
preg_match_all
возвращает массив, в котором совпадаютв первой записи и содержит массив строк.Вы можете получить этот массив, используя $array[0]
.
Помимо 1
и 2
, ваше регулярное выражение -?\d+(?:\.\d+)?+
также соответствует, например, -8.44
или 99999999999999999999999999
.
Если вам нужен массив int, вы можете использовать array_map , например, с функцией intval для обратного вызова.
Примечание максимальный размер int и округление значений.
Например:
$str = "test 1, test 2, test 2.3 and -8.44 plus 99999999999999999999999999999999999999999999999999";
preg_match_all('/-?\d+(?:\.\d+)?/', $str, $array);
$array = array_map/**/("intval", $array[0]);
var_dump($array);
Demo
В результате:
array(5) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(2)
[3]=>
int(-8)
[4]=>
int(9223372036854775807)
}