我有一个这样的数组:
array() {
["AG12345"]=>
array() {
}
["AG12548"]=>
array() {
}
["VP123"]=>
array() {
}
我只需要保留带有以“VP”开头的键的数组
可以使用一个功能吗?
答案 0 :(得分:3)
是的,只需使用unset()
:
foreach ($array as $key=>$value)
{
if(substr($key,0,2)!=="VP")
{
unset($array[$key]);
}
}
答案 1 :(得分:1)
上一个问题:How to delete object from array inside foreach loop?
foreach($array as $elementKey => $element) {
if(strpos($elementKey, "VP") == 0){
//delete this particular object from the $array
unset($array[$elementKey]);
}
}
答案 2 :(得分:0)
这对我有用:
$prefix = 'VP';
for ($i=0; $i <= count($arr); $i++) {
if (strpos($arr[$i], $prefix) !== 0)
unset($arr[$i]);
}
答案 3 :(得分:0)
另一种选择(如果是值,则会更简单):
array_intersect_key($arr, array_flip(preg_grep('~^VP~', array_keys($arr))));
答案 4 :(得分:-1)
这只是一个如何做到这一点的示例,你可能还有很多其他方法!
// sample array
$alpha = array("AG12345"=>"AG12345", "VP12548"=>"VP12548");
foreach($alpha as $val)
{
$arr2 = str_split($val, 2);
if ($arr2[0] == "VP")
$new_array = array($arr2[0]=>"your_values");
}