将字符串放入关联数组中,或者将其放入关联数组中

时间:2018-07-25 20:34:16

标签: php arrays string converter associative

我迷路了...我试图从我的字符串中创建一个关联数组...但是没有任何效果,我不知道哪里出了问题。

我的字符串看起来像

$string = "somethink;452;otherthink;4554;somethinkelse;4514"

我想创建一个关联数组,其中“文本”是名称,数字是值。...

  

Somethink => 452其他思维=> 4554 Somethinkelse => 4514

我尝试将字符串转换为数组,而不是关联数组,但是它不起作用...所以我决定使用

$array=explode(";",$string);

然后尝试进行一次foreach循环,但此循环不再起作用...有人可以帮忙吗?非常感谢

1 个答案:

答案 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