很抱歉,您使用的术语不正确。在编程方面,我是一个“周末勇士”,但努力变得更好。
我有两个索引数组,并将关联数组作为值。 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
)
循环遍历数组并检查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;
}
}
}
这是如何获得所需的数组
$dataa = array();
foreach ($names as $key => $name) {
foreach($ips as $key2=>$ip){
if($name['uid_apps'] == $ip['uid_apps']){
$dataa[] = $name;
}
}
}
print_r($dataa);