代码之家  ›  专栏  ›  技术社区  ›  Tonye Boro

如何将数组转换为变量

php
  •  -2
  • Tonye Boro  · 技术社区  · 6 年前

    我想将数组的每个值保存在变量中,并根据变量名打印出值。

    我的代码

    $arr = "PRE;OS0101001;123456;ATAKUMOSA EAST;IWARA;TOWN HALL IWARA;Yes;NGNOS10001;1000;5;Yes;10234OS;Yes;785;;2018-08-26 06:59:35";
    
    $delimiter = array(",",".","'","\"","|","\\","/",";",":");
    $replace = str_replace($delimiter, $delimiter[0], $arr);
    $explode = explode($delimiter[0], $replace);
    print_r($explode);
    

    因此:

    Array
    (
        [0] => PRE
        [1] => OS0101001
        [2] => 123456
        [3] => ATAKUMOSA EAST
        [4] => IWARA
        [5] => TOWN HALL IWARA
        [6] => Yes
        [7] => NGNOS10001
        [8] => 1000
        [9] => 5
        [10] => Yes
        [11] => 10234OS
        [12] => Yes
        [13] => 785
        [14] => 
        [15] => 2018-08-26 06
        [16] => 59
        [17] => 35
    )
    

    我想用这种格式打印出来

       $officer_id = $array[1];
        $userpassword = $array[2];
    

    等。。

    我该怎么做?

    谢谢。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Cemal    6 年前

    因为字符串看起来像csv行,所以可以使用 str_getcsv 更容易解析。

    $array = str_getcsv($arr,";","");
    

    你总是可以用 list 将分解结果指定给各个变量。

    list( ,$officer_id, $password, $sthg, $alsoSthg ) = explode($delimiter[0], $replace);
    

    或者如果你用过 str_getcsv酒店

     list( ,$officer_id, $password, $sthg, $alsoSthg ) = $array;
    

    您可以增加 列表 只要你确定它在数组中有对应关系。请注意,我故意将第一个参数留在 列表 为空,表示如果不想将该参数赋给变量,则可以将该参数(或任何其他参数)保留为空。 More info on list