将字符串分解为具有2个分隔符的多数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将字符串分解为具有2个分隔符的多数组相关的知识,希望对你有一定的参考价值。

我在php中有这种sting变量:

 $hccRol = GA#COR,OP#COR,FOR#TB,GA#LTS,FOR#MOD,GA#PMAI,LDR#LID,HCC#LAD,HN#LAD,OP#LAD,GA#LAD,GA#WM,OP#WM,HN#WM,OP#VZ,HN#VZ,GA#VZAI

我想将此转换为多数组,看起来像这样:

Array ( [GA] => Array ( [1] => COR 
                        [2] => LTS 
                        [3] => LAD 
                        [4] => WM 
                        [5] => VZAI 
                      )
        [FOR] => Array( [1] => TB
                        [2] => MOD
                      )
        [OP] => Array(  [1] => COR
                        [2] => WM
                        [3] => VZ
                      )
)

所以#在女主阵列中确定值必须来

答案

CBroe为您提供了传统方式的步骤,所以只是为了好玩,因为我很无聊:

parse_str(str_replace(array('#',','), array('[]=','&'), $hccRol ), $result);
print_r($result);

PHP> = 5.4.0:

parse_str(str_replace(['#',','], ['[]=','&'], $hccRol ), $result);
另一答案

以下是在分隔字符上进行爆炸,迭代数据和声明新数组结构的基本方法。我会尊重你想要的输出并在1而不是标准的0开始按键。

代码:(Demo

$hccRol = "GA#COR,OP#COR,FOR#TB,GA#LTS,FOR#MOD,GA#PMAI,LDR#LID,HCC#LAD,HN#LAD,OP#LAD,GA#LAD,GA#WM,OP#WM,HN#WM,OP#VZ,HN#VZ,GA#VZAI";

foreach (explode(",", $hccRol) as $item) {
    $halves = explode("#", $item, 2);
    if (!isset($result[$halves[0]])) {
        $result[$halves[0]][] = null;  // add zero key placeholder element
    }
    $result[$halves[0]][] = $halves[1];
    unset($result[$halves[0]][0]);     // remove the placeholder element
}

var_export($result);

输出:

array (
  'GA' => 
  array (
    1 => 'COR',
    2 => 'LTS',
    3 => 'PMAI',
    4 => 'LAD',
    5 => 'WM',
    6 => 'VZAI',
  ),
  'OP' => 
  array (
    1 => 'COR',
    2 => 'LAD',
    3 => 'WM',
    4 => 'VZ',
  ),
  'FOR' => 
  array (
    1 => 'TB',
    2 => 'MOD',
  ),
  'LDR' => 
  array (
    1 => 'LID',
  ),
  'HCC' => 
  array (
    1 => 'LAD',
  ),
  'HN' => 
  array (
    1 => 'LAD',
    2 => 'WM',
    3 => 'VZ',
  ),
)

如果你很高兴有0索引,那么只需删除if{}块和unset()线。

以上是关于将字符串分解为具有2个分隔符的多数组的主要内容,如果未能解决你的问题,请参考以下文章

python征程2.0(python基础))

如何使用 Angular js 或 java 脚本将逗号分隔的字符串分解为单个索引数组

将字符串分解为没有空元素的数组?

c语言怎么把一个字符数组分成多个数组?

有没有办法将2个非常相似的代码片段组合成一个函数并重复?

stoken 的使用