2013-03-15 66 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)