3 回答
TA贡献1784条经验 获得超9个赞
您可以使用preg_match_all
(正则表达式)和array_combine
:
使用正则表达式:
$str = "php/127/typescript/12/jquery/120/angular/50";
#match string
preg_match_all("/([^\/]*?)\/(\d+)/", $str, $match);
#then combine match[1] and match[2]
$result = array_combine($match[1], $match[2]);
print_r($result);
演示(带步骤): https: //3v4l.org/blZhU
TA贡献1921条经验 获得超9个赞
一种方法可能是preg_match_all分别从路径中提取键和值。然后,使用array_combine构建哈希图:
$str = "php/127/typescript/12/jquery/120/angular/50";
preg_match_all("/[^\W\d\/]+/", $str, $keys);
preg_match_all("/\d+/", $str, $vals);
$mapped = array_combine($keys[0], $vals[0]);
print_r($mapped[0]);
这打印:
Array
(
[0] => php
[1] => typescript
[2] => jquery
[3] => angular
)
TA贡献1798条经验 获得超7个赞
您可以explode()与for()Loop 一起使用,如下所示:-
<?php
$str = 'php/127/typescript/12/jquery/120/angular/50';
$list = explode('/', $str);
$list_count = count($list);
$result = array();
for ($i=0 ; $i<$list_count; $i+=2) {
$result[ $list[$i] ] = $list[$i+1];
}
print_r($result);
?>
输出:-
Array
(
[php] => 127
[typescript] => 12
[jquery] => 120
[angular] => 50
)
此处演示:- https://3v4l.org/8PQhd
- 3 回答
- 0 关注
- 122 浏览
添加回答
举报