我的字符串是:
$string = '200AUD, 150USD, 80GBP, 1250000VND';
如何使用key =>将$ string转换为数组?值。
Key: AUD => Value 200
Key: USD => Value 150
Key: GBP => 80
Key: VND => 1250000
更新
@Mark Baker我的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()函数,你能告诉我这个问题的最佳想法吗?
答案 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);