【问题标题】:Array a string in the following format?按以下格式排列一个字符串?
【发布时间】:2009-10-30 18:49:48
【问题描述】:

我怎样才能以 $_POST 的格式排列一个字符串...有点,我有这种格式进来:

101=1&2020=2&303=3

(如果您想知道,它是 jQuery Sortable Serialize 的结果... 我想运行一个 SQL 语句来更新一个带有 = 符号右侧的字段,它在等号的左侧是哪里?我知道这方面的 SQL,但我想把它放在我可以使用 foreach($VAR as $key=>$value) 并从中构建一个 sql 语句的格式中......因为我不知道有多少 101= 1会有吗?

我只是想以 $key = 101 和 $value = 1 的方式分解它

听起来令人困惑;) 非常感谢!

【问题讨论】:

    标签: php string variables foreach explode


    【解决方案1】:

    参见parse_str 函数。

    【讨论】:

      【解决方案2】:

      这不是 PHP 中最直观的函数名称,但您要查找的函数是 parse_str()。你可以这样使用它:

      $myArray = array();
      parse_str('101=1&2020=2&303=3', $myArray);
      print_r($myArray);
      

      【讨论】:

      • 很好,我不知道这个!非常有用的功能,我敢肯定,它已经被不知道它的人重写了数千次。
      【解决方案3】:

      一个快速而肮脏的解决方案:

      <?php
      $str = "101=1&2020=2&303=3";
      $VAR = array();
      foreach(explode('&', $str) AS $pair)
      {
          list($key, $value) = each(explode('=', $pair));
          $VAR[$key] = $value;
      }
      ?>
      

      【讨论】:

      • @JP:无需重新发明轮子。 PHP 内置了这个功能:parse_str();
      • 赞!只是有一段时间没有用 PHP 编码,忘记了这个;另外,名称 parse_str() 背后的语义不是有点宽吗? :)
      • @JP:在 PHP 标准库中看到一个命名错误的函数真的让您感到惊讶吗? :)
      • @Lukas:哦等等,这是“标准”吗? :p
      【解决方案4】:
      parse_str($query_string, $array_to_hold_values);
      

      【讨论】:

        【解决方案5】:
        $input = "101=1&2020=2&303=3";
        $output = array();
        $exp = explode('&',$input);
        foreach($exp as $e){
           $pair = explode("=",$e);
           $output[$pair[0]] = $pair[1];
        }
        

        【讨论】:

          【解决方案6】:

          在 & 上展开以获得一个包含 [ 101=1 , 2020=2 , 303=3 ] 的数组,然后对于每个元素,在 = 上拆分并将键/值对推送到新数组中。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-11-11
            • 2012-02-29
            • 1970-01-01
            • 1970-01-01
            • 2022-01-12
            • 2019-04-17
            相关资源
            最近更新 更多