首页 > 解决方案 > 从数组中获取值的快速方法,另一个数组给出条件

问题描述

可以说有一个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 是否为这个或任何接近的东西内置了一些东西。

标签: phparraysassociative-array

解决方案


创建一个关联数组,$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];
    }
}

推荐阅读