我对此有很多麻烦,现在我确定为什么.
我有一个动态数组,可以包含1个或多个值:
[array] => Array
(
[0] => blurb
[1] => news
[2] => entertainment
[3] => sci
[4] => diablo-3
)
这是我的模特
public function create_session_filter($filters)
{
$array = split("\|", $filters);
$filter['filter'] = $array;
$this->session->unset_userdata('filter');
$this->session->set_userdata($filter);
}
运行数组$filters时,我需要从任何单个数组值中删除所有破折号,并用空格替换它们.
这产生了一些时髦的结果:
public function create_session_filter($filters)
{
$filterarray = array();
$array = split("\|", $filters);
foreach ($array as $filter)
{
print_r($filter);
$filterspace = implode(' ', explode('-', $filter));
$filterarray = array_push($filterarray, $filterspace);
}
$filter['filter'] = $filterarray;
$this->session->unset_userdata('filter');
$this->session->set_userdata($filter);
}
正确的方法是什么?
谢谢
解决方法:
所有爆炸和内爆并不是真正必要的.您也不需要创建新的数组.您可以通过引用遍历您的值,并一口气修改它们:
$array = array( "blurb", "news", "diblo-3" );
$array = str_replace( "-", " ", $array );
哪个输出:
Array
(
[0] => blurb
[1] => news
[2] => diblo 3
)
演示:http://codepad.org/up0VoZ21