$txt = '80 plus 20 minus'; http://www.php.net/preg_match_all('#\d+|plus#', $txt, $wynik); http://www.php.net/echo'<pre>'. http://www.php.net/var_dump($wynik[0]) ,'</pre>';
http://www.php.net/array(3) { [0]=> string(2) "80" [1]=> string(4) "plus" [2]=> string(2) "20" }
http://www.php.net/array(3) { [0]=> int(80) [1]=> string(4) "plus" [2]=> int(20) }
<?php $txt = '80 plus 20 minus'; http://www.php.net/preg_match_all('#\d+|plus#', $txt, $wynik); foreach($wynik[0] as &$element) { # sprawdza, czy string zawiera liczbę if((int)$element) # jeśli tak, to rzutuje na (int) $element = (int) $element; } http://www.php.net/echo'<pre>'; http://www.php.net/var_dump($wynik[0]); http://www.php.net/echo '</pre>'; ?>
Czyli rozumiem, że samo preg_match_all nie ma takiej możliwości.
O rzutowaniu myslałem, ale chciałem się dowiedzieć czy może idzie to zrobić szybciej już na etapie wyłuskiwania danych.
Znalazłem krótsze dla mnie rozwiązanie, bo tablica będzie i tak zapisywana w JSON.
Wystarczy do json_encode dodać stałą JSON_NUMERIC_CHECK (PHP 5.3.3+):
http://www.php.net/echo json_encode($wynik[0], JSON_NUMERIC_CHECK);
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)