PHP 获取每次出现的定界符之间的所有子字符串
PHP get all substrings between each occurrence of a delimiter
我有一组查询字符串存储在数据库中
&foo=bar&foo2=bar2
我如何成功地遍历此字符串以将每个键和值提取到一个数组中,同时使用这些键作为数组键?
环顾四周,这里的其他问题似乎只针对一个值。
你可以尝试使用parse_str
<?php
$string = "&foo=bar&foo2=bar2";
parse_str($string, $output);
print_r($output);
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 )
我有一组查询字符串存储在数据库中
&foo=bar&foo2=bar2
我如何成功地遍历此字符串以将每个键和值提取到一个数组中,同时使用这些键作为数组键?
环顾四周,这里的其他问题似乎只针对一个值。
你可以尝试使用parse_str
<?php
$string = "&foo=bar&foo2=bar2";
parse_str($string, $output);
print_r($output);
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 )