根据键前缀过滤数组元素
给定一个具有遵循特定模式的键的数组,可能需要有选择地仅保留满足一定条件的元素。在本例中,我们的目标是过滤数组,仅保留键以特定字符串开头的元素,例如“foo-”。
函数方法
到使用函数方法实现此目的,一种选择是将 array_filter() 函数与自定义回调结合使用。回调函数检查每个键,如果它以“foo-”开头,则返回 true。然后 array_filter() 函数根据此条件过滤数组,仅保留匹配的键。
<code class="php">$array = array_filter($array, function($key) { return strpos($key, 'foo-') === 0; }, ARRAY_FILTER_USE_KEY);</code>
过程方法
过程方法涉及手动迭代数组。对于每个键,我们检查它是否以“foo-”开头,如果是,则将键值对添加到新数组中。
<code class="php">$only_foo = array(); foreach ($array as $key => $value) { if (strpos($key, 'foo-') === 0) { $only_foo[$key] = $value; } }</code>
使用对象的过程方法
另一种过程方法涉及使用 ArrayIterator 来迭代数组。这种方法允许我们访问每个元素的键和值。我们通过检查每个键是否以“foo-”开头并将匹配的元素添加到新数组来手动过滤数组。
<code class="php">$i = new ArrayIterator($array); $only_foo = array(); while ($i->valid()) { if (strpos($i->key(), 'foo-') === 0) { $only_foo[$i->key()] = $i->current(); } $i->next(); }</code>
以上是如何在 PHP 中根据键前缀过滤数组?的详细内容。更多信息请关注PHP中文网其他相关文章!