在PHP 5.6中我可以做到
print_r(array_filter([0=>'numeric', 'x' => 'string'], 'is_string', ARRAY_FILTER_USE_KEY));
并获取
Array
(
[x] => string
)
在较旧的PHP版本中,最简单的模拟方法是什么?
答案 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);