2016-03-20 6 views
-2

Aşağıdakileri içeren bir PHP dizim var: Gözleme, Waffle -400 (veri tabanımdaki bazı veriler) Yukarıdaki dizeden 400 çıkarmak istiyorum. Patlama işlevi ve strtok kullanmayı denedim. Hiç işe yaramıyor.Bir sınırdan sonra PHP'de bir String'in karakterlerini ayıklamak

$msg="Pancake, Waffle -400"; 
$amt=explode("-", $msg); 
echo $amt[0]; 

tire sonra karakterleri ayıklamak için başka bir yolu var mı:

Bu patlamak işlevi kullanılır nasıl?

+1

Eğer 'print_r ($ AMT) yaptın mı;' ve tam olarak dizinin içinde ne baktı: böyle strrchr kullanmak? – Rizier123

+0

'explode' bir dizi döndürecektir. Senin durumunda, $ amt dizisinde 2. elemanı al. – nextt1

+0

Bir seçenek daha 'strstr' –

cevap

0

kullanım substr ve strpos:

$msg="Pancake, Waffle -400"; 
echo substr($msg, 0, strpos($msg, '-')); 

sadece '400' parçasını istiyorum:

$msg="Pancake, Waffle -400"; 
echo substr($msg, strpos($msg, '-') + 1); 
+0

Bu işe yaradı! Teşekkürler – user100000001

0

Bazı normal ifadeler?

$msg = "Pancake, Waffle -400"; 
$regex = '~-?\d+~'; 
preg_match($regex, $msg, $match); 
print_r($match); 

Şimdi $match[0]-400 tutar. Bir demo on ideone.com'a bakın.

0

sonuncusu önce verilerdeki tire nihai sorunu önlemek için, isterim

$msg = "Pancake, Waffle -400"; 
$amt = substr(strrchr($msg, "-"), 1); // substr removes the '-' from the result 
echo $amt; 
İlgili konular