从关联数组的数组过滤选定的元素 [英] Filtering selected elements from array of associative arrays

查看:119
本文介绍了从关联数组的数组过滤选定的元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是一个后续问题下一个问题;

This is a follow-up question to another question below;

<一个href=\"http://stackoverflow.com/questions/23235355/removing-selected-elements-from-array-of-associative-arrays\">Removing从选择关联数组的数组元素

这一次,我想从关联数组的数组筛选出特定的元素,而不是删除它们。

This time, I would like to filter selected elements from an array of associative arrays instead of removing them.

我有这样的阵列;

$result = array(
    (int) 0 => array(
        'name' => 'Luke',
        'id_number' => '1111',
        'address' => '1544addr',
        'time_here' => '2014-04-12 13:07:08'
    ),
    (int) 1 => array(
        'name' => 'Sam',
        'id_number' => '2222',
        'address' => '1584addr',
        'time_here' => '2014-04-12 14:15:26'

我想从这个数组,这样它看起来就像这样筛选出特定的元素;

I want to filter selected elements from this array such that it will look like this;

array(
    (int) 0 => array(
        'name' => 'Luke',
        'id_number' => '1111'
    ),
    (int) 1 => array(
        'name' => 'Sam',
        'id_number' => '2222'

有关删除元素,函数取消设置就派上用场了。但是,如果我想要什么筛选选定的元素?怎么会在code样子?

For removing elements, the function unset comes in handy. But what if I want to filter selected elements? How would the code look like?

感谢您。

推荐答案

试试这个

   // $result is your input array
    $arr_filter_keys = array("name", "id_number"); // array of keys to be filter
    $arr_filter_result = array();  // output array
    foreach($result as $key=>$arr)
    {
       foreach($arr_filter_keys as $filter_key)
       {
          $arr_filter_result[$key][$filter_key] = $arr[$filter_key];
       }
    }

    print_r($arr_filter_result); // output array

演示-1

更新2:

如果你想导致同一阵列

   // $result is your input array
    $arr_filter_keys = array("name", "id_number"); // array of keys to be filter

    foreach($result as $key=>$arr)
    {
       foreach($arr as $k=>$v)
       {
         if(!in_array($k, $arr_filter_keys))
         {
            unset($result[$key][$k]);
         } 
       }
    }

    print_r($result); // output array

演示-2

Demo-2

这篇关于从关联数组的数组过滤选定的元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆