【问题标题】:Convert String Into array separated by square brackets将字符串转换为方括号分隔的数组
【发布时间】:2018-11-28 06:58:05
【问题描述】:

我有一个包含几个方括号的字符串。我需要将值作为由方括号分隔的数组。 我的例子会让你明白:

$inputString = "['A'|'AA']['B'|'BB']['C'|'CC']";

我的目标是得到这样的数组:

0=>'A'|'AA'
1=>'B'|'BB'
2=>'C'|'CC'

【问题讨论】:

  • 不清楚您希望关联数组的值实际是什么。 'A'|'AA' 是什么?
  • 显示我们的尝试以及您遇到问题的地方既有助于理解问题,也表明您已经做出了一些努力。
  • 第一个A代表一个图片路径,下一个AA代表它的标题。数据太大。所以我像这样使用 A,B,AA。

标签: php arrays string


【解决方案1】:

删除第一个和最后一个括号,然后使用explode函数。

$inputString = "['A'|'AA']['B'|'BB']['C'|'CC']";
$inputString = rtrim($inputString,"]");
$inputString = ltrim($inputString,"[");
print_r(explode("][", $inputString));
/*Array
(
  [0] => 'A'|'AA'
  [1] => 'B'|'BB'
  [2] => 'C'|'CC'
)*/

【讨论】:

    【解决方案2】:

    尝试使用PHP的explode函数..

    $inputString = "['A'|'AA']['B'|'BB']['C'|'CC']";
    $inputString=str_replace("["," ",$inputString);
    print_r (explode("]",rtrim($inputString,"]")));
    

    【讨论】:

      【解决方案3】:

      试试这个

      $inputString = "['A'|'AA']['B'|'BB']['C'|'CC']";
      $obj = str_replace("]","",str_replace("[","",explode("][", $inputString)));
      print_r($obj);
      

      【讨论】:

        【解决方案4】:

        使用preg_match_all

        $inputString = "['A'|'AA']['B'|'BB']['C'|'CC']";
        preg_match_all('#\[(.*?)\]#', $inputString, $array);
        print_r($array[1]);
        

        【讨论】:

          猜你喜欢
          • 2021-12-18
          • 1970-01-01
          • 1970-01-01
          • 2021-12-06
          • 1970-01-01
          • 2011-06-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多