Php 从数组中拒绝某些元素的最佳方法
我有一个数组:Php 从数组中拒绝某些元素的最佳方法,php,Php,我有一个数组: $array = array( 'aaaDSgsdfg' => 3, 'aaaRewrwer' => 4, 'bbbBsdfs' => 1, 'aaaGgfdg' => 4, 'bbbTrtert' => 5 ); 拒绝索引以“bbb”开头的元素的最佳方法是什么 我可以: $new = array(); foreach ($array as $index => $element) { if (substr(
$array = array(
'aaaDSgsdfg' => 3,
'aaaRewrwer' => 4,
'bbbBsdfs' => 1,
'aaaGgfdg' => 4,
'bbbTrtert' => 5
);
拒绝索引以“bbb”开头的元素的最佳方法是什么
我可以:
$new = array();
foreach ($array as $index => $element) {
if (substr($index, 0, 2) == 'aaa') {
$new[$index] = $element;
}
}
但也许这是更好的功能?可能是数组映射?您正在寻找的是数组过滤器:
$array = array_filter($array, function($key) {
return substr($index, 0, 2) === 'aaa';
}, ARRAY_FILTER_USE_KEY);
如果您使用的是PHP 5.6+,则可以使用来实现这一点:
$array = array_filter(
$array,
function ($e) { return strpos($e, 'bbb') !== 0; },
ARRAY_FILTER_USE_KEY
);
请参见,您可以使用:
请思考此字符串的长度:
substr($index,0,2)
您可能希望将长度更改为3。
$array = array_filter($array, function($index) {
return substr($index, 0, 2) === 'aaa'
})