根据前缀可用性提取数组元素
在数组具有不同键前缀的情况下,仅提取以以下开头的元素特定的前缀可能是一项有用的任务。让我们考虑一个示例数组:
array( 'abc' => 0, 'foo-bcd' => 1, 'foo-def' => 1, 'foo-xyz' => 0, // ... )
挑战: 仅保留以 'foo-' 开头的元素。
函数式方法:
$array = array_filter($array, function($key) {
return strpos($key, 'foo-') === 0;
}, ARRAY_FILTER_USE_KEY);
带有匿名函数的array_filter函数检查每个元素的key是否以'foo-'开头。如果满足此条件,则该元素将保留在修改后的数组中。
过程方法:
$only_foo = array();
foreach ($array as $key => $value) {
if (strpos($key, 'foo-') === 0) {
$only_foo[$key] = $value;
}
}
此方法迭代数组,检查每个键是否有“foo-”前缀。如果找到,则将该元素添加到仅包含满足条件的元素的新数组中。
使用对象的过程方法:
$i = new ArrayIterator($array);
$only_foo = array();
while ($i->valid()) {
if (strpos($i->key(), 'foo-') === 0) {
$only_foo[$i->key()] = $i->current();
}
$i->next();
}
通过这种方法,使用 ArrayIterator 对象来遍历原始数组。检查每个键是否有“foo-”前缀,并将相应的元素添加到新数组中。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3