我有一个数组:
$array = Array
(
[0] => qst
[1] => insert_question_note
[2] => preview_ans
[3] => _preview
[4] => view_structure_answer_preview
[5] => index
}
我需要根据
中的元素取消设置数组键$array_elements_to_be_remove = array('qst','_preview'); // or any string start with '_'
我试图使用:
$array_key = array_search('qst', $array);
unset($array[$array_key]);
$array_key_1 = array_search('_preview', $array);
unset($array[$array_key_1]);
还有其他更好的方法可以在 $ array 中搜索批量元素吗?
我希望如果我能像这样使用数组搜索:
$array_keys_to_be_unset = array_search($array_elements_to_be_remove, $array);
我找到了一种搜索字符串的方法,如果它以'_'开头,如下所示:
substr('_thestring', 0, 1)
任何想法如何做到这一点?
答案 0 :(得分:1)
答案 1 :(得分:1)
您可以使用array_filter
$array = Array(
0 => 'qst',
1 => 'insert_question_note',
2 => 'preview_ans',
3 => '_preview',
4 => 'view_structure_answer_preview',
5 => 'index'
);
$array_elements_to_be_remove = array('qst', '_preview'); // or any string start with '_'
$new_array = array_filter($array, function($item)use($array_elements_to_be_remove) {
if (in_array($item, $array_elements_to_be_remove) || $item[0] == '_')
return false; // if value in $array_elements_to_be_remove or any string start with '_'
else
return true;
});
var_dump($new_array);