我有以下字符串:names=bob;mike;sam&age=30;23;22&fav-nums=200;300;400
我想知道是否有一个函数可以将其拆分为一个关联数组,该数组作为其中的数组。例如
Array (
["name"] => Array
(
bob,
mike,
sam
)
["age"] => Array
(
30,
23,
22
)
["fav-nums"] => Array
(
200,
300,
400
)
)
答案 0 :(得分:0)
不确定是否存在创建子数组的直接方法,但是parse_str()
会将初始字符串除以&
并创建起点,然后使用{{1}处理每个元素}(和explode()
)创建子数组。
array_walk()
这给...
$start = 'names=bob;mike;sam&age=30;23;22&fav-nums=200;300;400';
parse_str($start, $output);
array_walk($output, function ( &$data ) { $data = explode(";", $data); });
print_r($output);
答案 1 :(得分:0)
您可以使用parse_str()和explode()函数来实现此目的。
步骤:
1)使用parse_str()函数,它将把您的字符串分割为关联数组。
2)现在循环遍历并查找键值。
3)键将是必需的键(名称,年龄和常用数字),并且您希望将值设置为数组。
4)使用;
explode()值,您将获得所需的值。
工作代码:
$str = "names=bob;mike;sam&age=30;23;22&fav-nums=200;300;400";
parse_str($str, $output);
$arr = [];
if (! empty($output)) {
foreach ($output as $key => $value) {
$arr[$key] = explode(';', $value);
}
}
echo '<pre>';print_r($arr);echo '</pre>';
输出:
Array
(
[names] => Array
(
[0] => bob
[1] => mike
[2] => sam
)
[age] => Array
(
[0] => 30
[1] => 23
[2] => 22
)
[fav-nums] => Array
(
[0] => 200
[1] => 300
[2] => 400
)
)
答案 2 :(得分:-1)
您可以使用 array_map 函数遍历整个数组,因为它可以提高代码速度。另外,始终使用 parse_str 来读取查询字符串并将其转换为数组形式。
dept
结果显示
var r = request({uri: 'http://stackoverflow.com' }, function (error, response, body) {
console.log('url requested ') ;
if (!error){
console.log(body);
}
else
{
console.log(error);
}
});
r.abort();