繁体   English   中英

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

[英]How to filter any array by key text(name)?

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

假设我有一个像这样的数组:

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
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM