根据前缀可用性提取数组元素
在数组具有不同键前缀的情况下,仅提取以以下开头的元素特定的前缀可能是一项有用的任务。让我们考虑一个示例数组:
array( 'abc' => 0, 'foo-bcd' => 1, 'foo-def' => 1, 'foo-xyz' => 0, // ... )
挑战:仅保留以“foo-”开头的元素。
函数方法:
<code class="php">$array = array_filter($array, function($key) { return strpos($key, 'foo-') === 0; }, ARRAY_FILTER_USE_KEY);</code>
带有匿名函数的 array_filter 函数检查每个元素的键是否以“foo-”开头。如果满足此条件,则该元素将保留在修改后的数组中。
过程方法:
<code class="php">$only_foo = array(); foreach ($array as $key => $value) { if (strpos($key, 'foo-') === 0) { $only_foo[$key] = $value; } }</code>
此方法迭代数组,检查每个键是否存在'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>
使用这种方法, ArrayIterator 对象用于遍历原始数组。检查每个键是否有“foo-”前缀,并将相应的元素添加到新数组中。
以上是如何在 PHP 中根据特定键前缀提取数组元素?的详细内容。更多信息请关注PHP中文网其他相关文章!