是否可以使用数组执行类似的操作:
Array
(
[0] => event_foo
[1] => event_bar
[2] =>
)
array_filter($array, str_replace("event_", ""));
所以我最终只能使用包含值的数组并删除“event_”前缀
Array
(
[0] => foo
[1] => bar
)
答案 0 :(得分:1)
为什么不直接在原始数组上使用str_replace
。
这段代码怎么样:
$arr = ["event_foo","event_bar",""];
print_r(array_filter((str_replace("event_","",$arr))));
答案 1 :(得分:0)
除非您将其展开到foreach
循环中,否则不能一气呵成,但您可以map
覆盖filter
的结果:
array_map(function ($s) { return str_replace('event_', '', $s); },
array_filter($array))
答案 2 :(得分:0)
试试这个:
$PREFIX = 'event_';
$array = array('event_foo' => 3, 'event_bar' => 7);
$prefixLength = strlen($PREFIX);
foreach($array as $key => $value)
{
if (substr($key, 0, $prefixLength) === $PREFIX)
{
$newKey = substr($key, $prefixLength);
$array[$newKey] = $value;
unset($array[$key]);
}
}
print_r($array); // shows: Array ( [foo] => 3 [bar] => 7 )
这对我有用..希望有所帮助:)