我如何从特定的多数组中仅获取八月的数据[重复]
Posted
技术标签:
【中文标题】我如何从特定的多数组中仅获取八月的数据[重复]【英文标题】:How i get only august month data from specific multi array [duplicate] 【发布时间】:2019-06-29 06:33:41 【问题描述】: $arr = [
(Object)[
'interval' => "2018-08-26",
'product_id' => 12 ,
'size' => 10
],
(Object)[
'interval' => "2018-09-26",
'product_id' => 26 ,
'size' => 25
],
(Object)[
'interval' => "2018-07-26",
'product_id' => 50 ,
'size' => 28
],(Object)[
'interval' => "2018-08-26",
'product_id' => 60,
'size' => 89
],
(Object)[
'interval' => "2018-12-26",
'product_id' => 75,
'size' => 89
],
(Object)[
'interval' => "2018-09-26",
'product_id' => 98 ,
'size' => 89
]
];
我只需要 12 和 60 个产品 ID。如何从这个数组中过滤(因为只有他们有 interval
of Aug (08))。
【问题讨论】:
id 16 在您的数组中不存在 代码示例中的输出是什么? @KamilKiełczewski 其拼写错误这是 60 产品 IDarray_filter
?
你有什么尝试吗?甚至是一个简单的 foreach 循环?
【参考方案1】:
如果您输入的是 ID,并且您想获取日期,请尝试
$ids = [12,60];
$result = array_filter($arr, function($e) use($ids)
return in_array($e->product_id, $ids);
);
$dates = array_map(function($e) return $e->interval; , $result );
工作示例here
更新
如果您输入的是月份数字,例如08
你想获取 ID 然后试试这个
$result = array_filter($arr, function($e)
return substr($e->interval,5,2) == '08';
);
$ids = array_map(function($e) return $e->product_id; , $result );
工作示例here。 $result
包含完整的对象,因此您可以读取 project_is 以及大小。
【讨论】:
最好定义$ids = [60,12]
并添加 use ($ids)
和 in_array($e->product_id, $ids)
- 但这只是我......
你是对的,但我需要从日期而不是 id 获取数据
@PriteshMahajan 我更新答案
我不想使用 ID :( @KamilKiełczewski
@PriteshMahajan 如果你不想使用 id,那么你可以使用这个返回语句数组过滤器:return $e->product_id == 60 or $e->product_id==12;
并在函数后删除字符串 use($ids)
【参考方案2】:
试试这个:
$arrays = array_filter($arrays,function($arr)
return substr($arr->interval,5,2) == '08';
);
array_walk($arrays,function($obj)
unset($obj->interval);
);
【讨论】:
array_coloum 仅从对象中获取一个键。我需要2把钥匙。 product_id 和大小。请检查我的问题 更新了我的答案,先生! 有Skype吗,如果有,请给我以上是关于我如何从特定的多数组中仅获取八月的数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章