php - 从数组中获取值的快速方法,另一个数组给出条件
问题描述
可以说有一个array $filter_from_array_id = array(2,8,52,45,7)
然后还有另一个数组
$main_array = array([0] => array(id=> 8,name => 'data-ryhryh'),[1] => array(id=> 7,name => 'data-ththt'),[2] => array(id=> 66,name => 'data-kukuk'),[3] => array(id=> 85,name => 'data-gegegeg')
我想要这样的结果array([0] => array(id=> 8,name => 'data-ryhryh'),
你明白了, id 被过滤了。
我将通过循环获得结果,但如果主数组更大,那么它会消耗时间,我想知道是否有比循环所有更短的方法。
我还想知道 php 是否为这个或任何接近的东西内置了一些东西。
解决方案
创建一个关联数组,$main_array
这样您就不必循环查找 ID。
$main_assoc = array_combine(array_column($main_array, 'id'), $main_array);
$result = [];
foreach ($filter_from_array_id as $id) {
if (isset($main_assoc[$id])) {
$result[] = $main_assoc[$id];
}
}
推荐阅读
- magento-1.9 - Magento 1.9 上的管理员登录问题
- tfs - 从 TFS 中的作者下拉列表中删除不需要的作者(版本 15.105.25716.0)
- python - 带有源的 DRF ModelSerializer CharField 未出现在 valid_data 中
- javascript - 使用 vue.js 和 axios 操作注入的 HTML
- neo4j - neo4j:来自纯字符串表示的整数列表
- solr - HebMorph 与 solr:如何使用停用词
- javascript - 将状态引用中的对象属性反应到状态中的另一个对象上
- asp.net-web-api2 - Swagger UI 上的错误链接
- c# - Azure 函数异常无法加载 ActiveDirectory 文件或程序集
- python-3.x - urllib 错误:请求过多