Como filtrar qualquer matriz pelo texto-chave (nome)?

Eu quero filtrar o array pelo texto da chave.

Suponha que eu tenha uma matriz como:

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

A partir desta matriz, eu só quero os elementos cujo texto da chave começa com NEAR .

Como faço isso?

tente este código.

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

Fique assim …

 < ?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 "
"; print_r($arr);

SAÍDA:

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