使用类似于此的数组$s_filters
(可能有许多不同的键):
Array
(
[genders] => m
[ages] => 11-12,13-15
)
我如何以编程方式将此数组转换为:
$gender = array('m');
$ages = array('11-12','13-15');
所以基本上循环遍历$s_filters
并创建新的数组,其名称是关键,值应该在","
上爆炸;
我尝试使用变量:
foreach( $s_filters as $key => $value )
{
$$key = array();
$$key[] = $value;
print_r($$key);
}
但是这给了我cannot use [] for reading
个错误。我是在正确的轨道上吗?
答案 0 :(得分:2)
以下代码对您要实现的目标采取不同的方法。它首先使用extract
函数将数组转换为局部变量,然后循环使用这些新变量并explode
:
extract($s_filters);
foreach(array_keys($s_filters) as $key)
{
${$key} = explode(",", ${$key});
}
答案 1 :(得分:0)
$s_filters = Array
(
"genders" => "m",
"ages" => "11-12,13-15"
);
foreach($s_filters as $key=>$value)
{
${$key} = explode(',', $value);
}
header("Content-Type: text/plain");
print_r($genders);
print_r($ages);
答案 2 :(得分:0)
$gender = $arr['gender'];
你想要的是难以理解,难以调试,总体上是一种不好的做法。它绝对可以更好地处理。