使用key =>将字符串分解为数组值

时间:2014-03-31 14:41:41

标签: php explode

我的字符串是:

$string = '200AUD, 150USD, 80GBP, 1250000VND';

如何使用key =>将$ string转换为数组?值。

Key: AUD => Value 200
Key: USD => Value 150
Key: GBP => 80
Key: VND => 1250000

更新

@Mark Ba​​ker我的php版本是5.4所以我无法测试你的代码,谢谢

@Aleatoric 我使用这段代码,但数组在键和值上返回一些空格字符:

                Array
(
    [ CHF] => 130 
    [  GBP] =>  80 
    [  USD] =>  125 
    [  DKK] =>  750 
    [  PLN] =>  400 
    [  CZK] =>  2500 
    [  YTL] =>  175 
    [  BGN] =>  175 
    [  RUB] =>  4000 
    [  RON] =>  400 
    [  SEK] =>  1000 
)

我使用trim()去除所有空间,但是如果不使用trim()函数,你能告诉我这个问题的最佳想法吗?

2 个答案:

答案 0 :(得分:3)

您必须首先使用以下内容爆炸字符串:

$array1 = explode(',', $string);

然后使用foreach循环迭代元素以分割字符串并将它们放入关联数组中:

$array2 = array();
foreach($array1 as $string){
    $currency = trim(preg_replace("/[0-9]+/", "", $string));
    $value = trim(preg_replace("/[a-zA-Z]+/", "", $string));
    $array2[$currency] = $value;
}

答案 1 :(得分:1)

需要PHP> = 5.5

$string = '200AUD, 150USD, 80GBP, 1250000VND';

$currencyArray = array_column(
    array_map(
        function ($value) {
            return sscanf($value, '%d%s');
        },
        explode(',', $string)
    ),
    0,
    1
);

var_dump($currencyArray);