【问题标题】:PHP get all substrings between each occurrence of a delimiter [duplicate]PHP获取每次出现分隔符之间的所有子字符串[重复]
【发布时间】:2016-03-18 15:33:33
【问题描述】:

我有一组查询字符串存储在数据库中

&foo=bar&foo2=bar2

我将如何成功地遍历这个字符串以将每个键和值提取到一个数组中,同时使用这些键作为数组键?

环顾四周,这里的其他问题似乎只针对一个值。

【问题讨论】:

标签: php arrays substring delimiter


【解决方案1】:
function string2KeyedArray($string, $delimiter = '&', $kv = '=') {
  if ($a = explode($delimiter, $string)) { // create parts
foreach ($a as $s) { // each part
  if ($s) {
    if ($pos = strpos($s, $kv)) { // key/value delimiter
      $ka[trim(substr($s, 0, $pos))] = trim(substr($s, $pos + strlen($kv)));
    } else { // key delimiter not found
      $ka[] = trim($s);
    }
  }
}
return $ka;
  }
} 

现在你可以使用了

$string = "&foo=bar&foo2=bar2";
print_r(string2KeyedArray($string));

//Output: Array ( [foo] => bar [foo2] => bar2 )

【讨论】:

    【解决方案2】:

    你可以尝试使用parse_str

    <?php
    $string = "&foo=bar&foo2=bar2";
    parse_str($string, $output);
    print_r($output);
    

    看这里https://eval.in/484197

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-20
      • 1970-01-01
      • 2021-04-04
      • 1970-01-01
      • 2021-09-01
      • 2015-08-01
      • 2018-10-13
      相关资源
      最近更新 更多