我迷路了...我试图从我的字符串中创建一个关联数组...但是没有任何效果,我不知道哪里出了问题。
我的字符串看起来像
$string = "somethink;452;otherthink;4554;somethinkelse;4514"
我想创建一个关联数组,其中“文本”是名称,数字是值。...
Somethink => 452其他思维=> 4554 Somethinkelse => 4514
我尝试将字符串转换为数组,而不是关联数组,但是它不起作用...所以我决定使用
$array=explode(";",$string);
然后尝试进行一次foreach循环,但此循环不再起作用...有人可以帮忙吗?非常感谢
答案 0 :(得分:0)
使用正则表达式和array_combine
:
$string = "somethink;452;otherthink;4554;somethinkelse;4514";
preg_match_all("'([A-Za-z]+);(\d+)'", $string, $matches);
$assoc = array_combine($matches[1], $matches[2]);
print_r($assoc);
使用传统的for循环:
$string = "somethink;452;otherthink;4554;somethinkelse;4514";
$arr = explode(";", $string);
for ($i = 0; $i < count($arr); $i += 2) {
$assoc[$arr[$i]] = $arr[$i+1];
}
print_r($assoc);
结果:
Array
(
[somethink] => 452
[otherthink] => 4554
[somethinkelse] => 4514
)
请注意,对数必须为偶数;您可以添加一个条件来对此进行测试,并为丢失的任何密钥提供一些替代方法。
这里是here。