如何按键文本(名称)过滤任何数组



我想按键的文本过滤数组。

假设我有一个数组,如下所示:

Array
(
    [FAR] => 
    [NEAR] => 1
    [IMMEDIATE] => 
    [FAR_beacon_location] => 
    [FAR_test] => 
    [FAR_test2] =>     
    [NEAR_test] => 6 
    [NEAR_test2] => 6
)

从这个数组中,我只想要键文本以 NEAR 开头的元素。

我该怎么做?

试试这段代码。

   $res_arr = array();
    foreach($my_array as $key=>$val) {
        if(strpos($key, "NEAR") === 0) {
            //Key matches,
            $res_arr[] = $val;
        }
    }
    print_r($res_arr);

像这样做。

<?php
$arr=Array
(
    'FAR' => '',
    'NEAR' => 1,
    'IMMEDIATE' =>'', 
    'FAR_beacon_location' =>'', 
    'FAR_test' => '',
    'FAR_test2' =>'',     
    'NEAR_test' => 6, 
    'NEAR_test2' => 6
);
foreach($arr as $k=>$v)
{
if(substr($k, 0, 4)!='NEAR')
{
unset($arr[$k]);
}
}
echo "<pre>";
print_r($arr);

输出:

Array
(
    [NEAR] => 1
    [NEAR_test] => 6
    [NEAR_test2] => 6
)
function is_NEAR($var)
{
    return strpos($var, "NEAR") === 0;
}
print_r(array_flip(array_filter(array_flip($arr), "is_NEAR")));
    $array=Array
  (
    [FAR] => 
    [NEAR] => 1
    [IMMEDIATE] => 
    [FAR_beacon_location] => 
    [FAR_test] => 
    [FAR_test2] =>     
    [NEAR_test] => 6 
    [NEAR_test2] => 6
  )
   foreach($array as $key=>$value)
  {
      if(strpos($key,"NEAR")==0)
    {
          // do your task
    }
}

最新更新