PHP数组&变量变量

时间:2011-11-05 13:05:16

标签: php

使用类似于此的数组$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个错误。我是在正确的轨道上吗?

3 个答案:

答案 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'];

你想要的是难以理解,难以调试,总体上是一种不好的做法。它绝对可以更好地处理。