如何使用PHP根据arrayOne中的值过滤arrayTwo?

问题描述 投票:0回答:2

很抱歉,您使用的术语不正确。在编程方面,我是一个“周末勇士”,但努力变得更好。

我有两个索引数组,并将关联数组作为值。 ArrayOne具有[uid_apps]的值,我想将其用作ArrayTwo的过滤器,因此我可以创建ArrayThree。第三数组将仅包含来自ArrayTwo中与ArrayOne中的[uid_apps]值匹配的数组项。

我看了ar array_combine()和array_intersect(),但没有看到通往成功的明确途径。我也弄乱了array_filter(),但是无法使其工作。

下面是arrayOne,arrayTwo和所需arrayThree的样本。您能提供的任何帮助将不胜感激。

ArrayOne

        [0] => Array
            (
                [uid_appMembership] => 3
                [uid_apps] => 1
                [uid_main] => 3
                [privileges] => 555
            )

        [1] => Array
            (
                [uid_appMembership] => 4
                [uid_apps] => 3
                [uid_main] => 3
                [privileges] => 555
            )

ArrayTwo

        [0] => Array
            (
                [uid_apps] => 1
                [name_apps] => GHS Walk Through Evaluation
                [site_apps] => ghs_001
                [team_apps] => ghs_admin
                [admin_uid] => 2
                [dir_apps] => ghs_walk-through-evaluation
            )

        [1] => Array
            (
                [uid_apps] => 2
                [name_apps] => CTE Work Based Learning Solution
                [site_apps] => do_000
                [team_apps] => do_cte
                [admin_uid] => 3
                [dir_apps] => do_cte-wbl
            )

        [2] => Array
            (
                [uid_apps] => 3
                [name_apps] => GHS Parking Permit Solution 
                [site_apps] => ghs_001
                [team_apps] => ghs_parking
                [admin_uid] => 3
                [dir_apps] => ghs_parking-permits
            )

        [3] => Array
            (
                [uid_apps] => 4
                [name_apps] => GHS F-List
                [site_apps] => ghs_001
                [team_apps] => ghs_counseling
                [admin_uid] => 3
                [dir_apps] => ghs_flist
            )

所需的ArrayThree我想使用arrayOne和arrayTwo来创建此数组。

        [0] => Array
            (
                [uid_apps] => 1
                [name_apps] => GHS Walk Through Evaluation
                [site_apps] => ghs_001
                [team_apps] => ghs_admin
                [admin_uid] => 2
                [dir_apps] => ghs_walk-through-evaluation
            )
        [1] => Array
            (
                [uid_apps] => 4
                [name_apps] => GHS F-List
                [site_apps] => ghs_001
                [team_apps] => ghs_counseling
                [admin_uid] => 3
                [dir_apps] => ghs_flist
            )
php arrays associative-array
2个回答
1
投票

循环遍历数组并检查uid_apps值是否在其他数组中可用(如果有,则将其添加到第三个数组中。检查在数组中使用。

    $arr1 =  array(
            array(   
                'uid_appMembership' => 3,
                'uid_apps'          => 1,
                'uid_main'          => 3,
                'privileges'        => 555
            ),
            array(
                'uid_appMembership' => 4,
                'uid_apps'          => 3,
                'uid_main'          => 3,
                'privileges'        => 555
            )
        );

$arr2 = array(
            array(
                'uid_apps' => 1,
                'name_apps' => 'GHS Walk Through Evaluation',
                'site_apps' => 'ghs_001',
                'team_apps' => 'ghs_admin',
                'admin_uid' => 2,
                'dir_apps' => 'ghs_walk-through-evaluation'
            ),array(
                'uid_apps' => 2,
                'name_apps' => 'CTE Work Based Learning Solution',
                'site_apps' => 'do_000',
                'team_apps' => 'do_cte',
                'admin_uid' => 3,
                'dir_apps' => 'do_cte-wbl'
            ),array(
                'uid_apps' => 3,
                'name_apps' => 'GHS Parking Permit Solution' ,
                'site_apps' => 'ghs_001',
                'team_apps' => 'ghs_parking',
                'admin_uid' => 3,
                'dir_apps' => 'ghs_parking-permits'
            ),array(
                'uid_apps' => 4,
                'name_apps' => 'GHS F-List',
                'site_apps' => 'ghs_001',
                'team_apps' => 'ghs_counseling',
                'admin_uid' => 3,
                'dir_apps' => 'ghs_flist'
            )
        );
    $arr3 = array();
    foreach ($arr2 as $key => $value) {
        $res = chk_val($arr1,$value['uid_apps']);
        if($res == true){
            array_push($arr3,$arr2[$key]); 
        }
    }

    function chk_val($arr,$val){
        foreach ($arr as $key => $value) {
            if(in_array($val,$value)){
               return true;
            }else{
                return false;
            }

        }
    }

工作示例:http://phpfiddle.org/main/code/sdri-fbpk


0
投票

这是如何获得所需的数组

$dataa = array();
foreach ($names as $key => $name) {
   foreach($ips as $key2=>$ip){
    if($name['uid_apps'] == $ip['uid_apps']){
        $dataa[] = $name;
    }
  }       
}
print_r($dataa);
© www.soinside.com 2019 - 2024. All rights reserved.