Php 如何判断数组是否包含另一个数组
这真让人头疼 我有两个数组Php 如何判断数组是否包含另一个数组,php,arrays,Php,Arrays,这真让人头疼 我有两个数组 $array_1 = Array ( [0] => Array ( [id] => 1 [name] => 'john' [age] => 30 ) [1] => Array ( [id] => 2 [name] => 'Amma'
$array_1 = Array
(
[0] => Array
(
[id] => 1
[name] => 'john'
[age] => 30
)
[1] => Array
(
[id] => 2
[name] => 'Amma'
[age] => 28
)
[2] => Array
(
[id] => 3
[name] => 'Francis'
[age] => 29
)
)
和另一个数组
array_2 = = Array
(
[0] => Array
(
[id] => 2
[name] => 'Amma'
)
)
我如何判断$array\u 2
的id和名称与$array\u 1[1
]的id和名称相同,并返回$array\u 1[1]['age']
谢谢我想你应该想找到一个拥有已知的
身份证
和姓名
的人的年龄
这将有助于:
foreach ($array_1 as $val){
if($val['id']==$array_2[0]['id'] && $val['name']==$array_1[0]['name']){
$age = $val['age'];
}
}
echo $age;
我假设你想找到一个已知
id
和姓名的人的年龄
这将有助于:
foreach ($array_1 as $val){
if($val['id']==$array_2[0]['id'] && $val['name']==$array_1[0]['name']){
$age = $val['age'];
}
}
echo $age;
使用
在我看来,使用array_diff()比简单地比较特定键更通用
Array_diff()返回一个新数组,该数组表示第一个数组中存在而第二个数组中不存在的所有条目
由于第一个数组包含3个键,而第二个数组包含2个键,因此当有2个匹配项时,array_diff()将返回一个包含额外键(age)的数组
希望这有帮助 使用
在我看来,使用array_diff()比简单地比较特定键更通用
Array_diff()返回一个新数组,该数组表示第一个数组中存在而第二个数组中不存在的所有条目
由于第一个数组包含3个键,而第二个数组包含2个键,因此当有2个匹配项时,array_diff()将返回一个包含额外键(age)的数组
希望这有帮助 试试看这个
及
-最好的试试看这个
及
-最好的你可以用一个简单的循环来完成。我将要编写一个函数,它接受$array_2中与$array_1中的内容匹配的第一个元素,并返回“age”:
function getField($array_1, $array_2, $field)
{
foreach ($array_2 as $a2) {
foreach ($array_1 as $a1) {
$match = true;
foreach ($a2 as $k => $v) {
if (!isset($a1[$k]) || $a1[$k] != $a2[$k]) {
$match = false;
break;
}
}
if ($match) {
return $a1[$field];
}
}
}
return null;
}
你可以用一个简单的循环来完成。我将要编写一个函数,它接受$array_2中与$array_1中的内容匹配的第一个元素,并返回“age”:
function getField($array_1, $array_2, $field)
{
foreach ($array_2 as $a2) {
foreach ($array_1 as $a1) {
$match = true;
foreach ($a2 as $k => $v) {
if (!isset($a1[$k]) || $a1[$k] != $a2[$k]) {
$match = false;
break;
}
}
if ($match) {
return $a1[$field];
}
}
}
return null;
}
array_2是否可以包含许多值?这看起来像是一些sql数据,可能一个联接是一个不错的选择?array_2是否可以包含许多值?这看起来像是一些sql数据,可能一个联接是一个不错的选择?使用或不好,它的优先级低于=代码>。意味着您必须使用|
。或者等等,你是认真的吗?;)嘿,我只是想知道,你真的读过吗?!?哈哈,我犯了一个错误,|
或或两者的优先级都低于=
。使用或不好,它的优先级比低=代码>。意味着您必须使用|
。或者等等,你是认真的吗?;)嘿,我只是想知道,你真的读过吗?!?哈哈,我犯了一个错误,|
或或两者的优先级都低于=代码>。以前从未想过,这要简单得多。那会帮助我的,谢谢!你不觉得这和我的答案完全一样吗你太棒了。抱歉耽搁了,因为我遇到了交通堵塞;)以前从未想过,这要简单得多。那会帮助我的,谢谢!你不觉得这和我的答案完全一样吗你太棒了。抱歉耽搁了,因为我遇到了交通堵塞;)我也想知道。我没有投反对票。但你的答案是正确的。如果你不信任我,我可以投你反对票,以表明你的答案将被投“-1”的反对票(当然只用于测试),然后再次投赞成票。StasOp溢出,真的应该考虑显示谁的选票…我也很好奇。我没有投反对票。但你的答案是正确的。如果你不信任我,我可以投你反对票,以表明你的答案将被投“-1”的反对票(当然只用于测试),然后再次投赞成票。StasOp溢出,应该真正考虑谁投票谁投票。