如何在5.6以下的PHP版本中替换ARRAY_FILTER_USE_KEY

时间:2016-07-08 14:48:53

标签: php

在PHP 5.6中我可以做到

print_r(array_filter([0=>'numeric', 'x' => 'string'], 'is_string', ARRAY_FILTER_USE_KEY));

并获取

Array
(
    [x] => string
)

在较旧的PHP版本中,最简单的模拟方法是什么?

2 个答案:

答案 0 :(得分:1)

使用此功能:

function array_filter_use_key($array, $callback) {
  return array_intersect_key($array, array_fill_keys(array_filter(array_keys($array), $callback), TRUE));
}

答案 1 :(得分:0)

最简单?我想您只是使用经典的foreach()循环并将合格的键值对推入新的结果数组中。

$filtered = [];
foreach ([0 => 'numeric', 'x' => 'string'] as $key => $val) {
    if (is_string($key)) {
        $filtered[$key] = $val;
    }
}
var_export($filtered);