为了账号安全,请及时绑定邮箱和手机立即绑定

如何在php中将字符串转换为数组

如何在php中将字符串转换为数组

PHP
GCT1015 2023-06-24 17:01:49
PHP 中如何将字符串转换为数组?我有一个像这样的字符串:$str = "php/127/typescript/12/jquery/120/angular/50";输出:Array (    [php]=> 127    [typescript]=> 12    [jquery]=> 120    [angular]=> 50)
查看完整描述

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


查看完整回答
反对 回复 2023-06-24
?
郎朗坤

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

)


查看完整回答
反对 回复 2023-06-24
?
元芳怎么了

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


查看完整回答
反对 回复 2023-06-24
  • 3 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信