Php 如何在这个系统中进行平等性检查?
我有两个diff数组,我想在同等条件下打印这些数组 第一个数组Php 如何在这个系统中进行平等性检查?,php,arrays,Php,Arrays,我有两个diff数组,我想在同等条件下打印这些数组 第一个数组 Array ( [0] => fname [1] => lname [2] => email ) Array ( [fname] => john [lname] => notdefined [email] => xy
Array (
[0] => fname
[1] => lname
[2] => email
)
Array (
[fname] => john
[lname] => notdefined
[email] => xyz@gmail.com
[address] => london
)
第二个数组
Array (
[0] => fname
[1] => lname
[2] => email
)
Array (
[fname] => john
[lname] => notdefined
[email] => xyz@gmail.com
[address] => london
)
现在我的问题是,我想打印第二个数组的值,当且仅当该数组的索引与第一个数组的值匹配时
第二个数组的索引==第一个数组的值(我可以说这是更好理解的相等条件)
在这种情况下,我的输出应该是
Array (
[fname] => john
[lname] => notdefined
[email] => xyz@gmail.com
)
它不应该显示地址,因为第一个数组中不存在
对不起!我不知道如何准确地解释这件事
这里这只是示例代码,但在现实中,我有一些额外的信息也非常大的数组(请记住这一点)
提前感谢有很多方法,其中之一是:
foreach($secArr as $key => $val)
{
if(in_array($key, $firstArr))
echo $val;
}
或:
或:
发挥您的想象力,因此不是提供现成代码的地方,请向我们展示您的尝试,我们将帮助您使其发挥作用。使用函数交换第一个数组键和值,并使用键计算数组的交集,以便使用进行比较
用
array\u Flip
翻转第一个数组,然后在两个数组上使用array\u intersect\u键
。@ShankarDamodaran你的建议效果很好。。。谢谢你用各种各样的方式表现出的魅力。。需要测试阵列翻转
$array1 = array(0 => fname,1 => lname ,2 => email);
$array1 = array_flip($array1);
$array2 = array(
fname => 'john',
lname => 'notdefined',
email => 'xyz@gmail.com',
address => 'london'
);
$new = array_intersect_key($array2,$array1);
print_r($new);