为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
九州编程 2022-07-16 16:57:28
很抱歉没有使用正确的术语。在编程方面,我是一个非常“周末战士”,但我正在努力变得更好。我有两个以关联数组作为值的索引数组。ArrayOne有一个值[uid_apps],我想将其用作ArrayTwo的过滤器,因此我可以创建ArrayThree。第三个数组将仅包含ArrayTwo中与ArrayOne[uid_apps]中的值匹配的数组项。我查看了 ar array_combine() 和 array_intersect(),但我没有看到一条清晰的成功之路。我也弄乱了array_filter(),但无法让它工作。下面是arrayOne、arrayTwo 和所需的arrayThree 的示例。非常感谢您提供的任何帮助。阵列一        [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            )数组二        [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 创建这个数组。
查看完整描述

2 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

遍历数组并检查 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


查看完整回答
反对 回复 2022-07-16
?
catspeake

TA贡献1111条经验 获得超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);


查看完整回答
反对 回复 2022-07-16
  • 2 回答
  • 0 关注
  • 191 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号