【问题标题】:Explode string [ ]分解字符串 [ ]
【发布时间】:2021-11-13 10:37:37
【问题描述】:

你好。

我有一个字符串输出。 "zoneAdd[1][home][group]"

我需要。

$task = "ZoneAdd" $id = 1 $place = "home" $type = "group"

如何吐这些家伙?我需要 PHP 或 javascript 解决方案。

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 我在想这个($array = explode("[", $string) 但是我每次都必须删除最后一个 ],除了第一个。我认为应该有更简单的方法。
  • 在分解替换之前,将[ 替换为,,然后删除],分解,然后分配给变量3v4l.org/n0b0e,但如果结构始终相同,您可以使用正则表达式来执行一次完成并使用 extract 分配给局部变量
  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: javascript php explode


【解决方案1】:

这是使用 Javascript 的一种方法。您可以使用正则表达式拆分字符串。它可以输出一个数组,然后您可以从那里循环并将字符串分配给您需要的变量

const str = "zoneAdd[1][home][group]"
const strArr = str.replace(/[\[\]']+/g,' ').trim().split(' ')

const task = strArr[0] 
const id = strArr[1] 
const place = strArr[2] 
const type = strArr[3]
console.log({strArr, task, id,place,type})

【讨论】:

    【解决方案2】:

    如果您想在没有正则表达式的情况下进行拆分,这里是 PHP 解决方案

    <?php
         $string="zoneAdd[1][home][group]";
         $arr=explode("[", $string);
         foreach ($arr as $key=>$item) {
             $arr[$key]=explode("]", $item)[0];
         }
         $task=$arr[0];
         $id=$arr[1];
         $place=$arr[2];
         $type=$arr[3];
    

    【讨论】:

      猜你喜欢
      • 2016-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多