我想知道这种情况。
如果我有大量关于50k
项目或更多的说法怎么办。
现在让我们说许多数组键都有前缀让我们命名它settings_
,现在如果我想选择键开始的所有值,settings_
我需要循环遍历所有50k
项目还是有更好的方法?
并且说有一些“神奇”的方法可以用单级数组来做到这一点,那么多维数组呢?
有preg_grep,它匹配数组值。由于要搜索键,因此需要使用array_flip反转键和值:
<?php
$array = array(
'armenia' => 0,
'argentina' => 1,
'brazil' => 2,
'bolivia' => 3,
'congo' => 4,
'denmark' => 5
);
$filtered = array_flip(preg_grep('/^b/', array_flip($array)));
var_dump($filtered);
/*
Output:
array(2) {
["brazil"]=>
int(2)
["bolivia"]=>
int(3)
}
*/
$arr_main_array = array('something_test' => 123, 'other_test' => 456, 'something_result' => 789);
foreach($arr_main_array as $key => $value){
$exp_key = explode('_', $key);
if($exp_key[0] == 'something'){
$arr_result[] = $value;
}
}
if(isset($arr_result)){
print_r($arr_result);
}
您可以在http://sandbox.onlinephpfunctions.com/code/884816dd115b3ccc610e1732e9716471a7b29b0f执行代码