2013-03-15 70 views
0

破滅簡單的文字我有一個簡單的數組:解析或陣列

array(price => "1737 EUR - 3447 EUR") 

我需要引起就像這樣:

$價格1 = 1737

$價格= 3447

我知道這是非常簡單的問題,但我不知道選擇哪個函數以及如何做它?

+0

爆炸(); on「 - 」then intval();值? – Waygood 2013-03-15 10:38:28

回答

4

試試這個:

<?php 
$arr = array("price" => "1737 EUR - 3447 EUR"); 
preg_match('/(?P<price1>\d+)\s*EUR\s*-\s*(?P<price>\d+)\s*EUR/',$arr["price"],$matches); 
echo "<pre>"; 
print_r($matches); 
?> 
+0

謝謝,它運作良好。但是,如果我傾銷例如price1,結果是'price1 =>「0」',我不想在零後面留出空間。我怎樣才能解決這個問題? – 2013-03-15 10:50:39

+1

'trim' sapce'trim($ matches ['price1'])' – 2013-03-15 11:17:47

0

或者試試這個,如果你不希望使用正則表達式;

$priceArray=array(price => "1737 EUR - 3447 EUR"); 
$spiltPrices=explode(' - ',$priceArray['price']); 
echo $price1=$spiltPrices[0]; 
echo $price=$spiltPrices[1]; 
0

不是太漂亮,但我會做這樣的事情:

//the initial array 
$price = array("price" => "1737 EUR - 3447 EUR"); 

$prices = explode("-",$price["price"]); 
foreach($prices as &$price) $price = (int) $price; 
print_r($prices); //Array ([0] => 1737 [1] => 3447)