从关联数组的数组过滤选定的元素 [英] Filtering selected elements from array of associative arrays
本文介绍了从关联数组的数组过滤选定的元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是一个后续问题下一个问题;
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
更新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
Demo-2
这篇关于从关联数组的数组过滤选定的元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文