Php 如何使用usort函数比较数组中的值?
创建三个数组并比较数组中的值Php 如何使用usort函数比较数组中的值?,php,arrays,Php,Arrays,创建三个数组并比较数组中的值 $array1 = array ("red", "yellow", "brown", "green"); $array2 = array ("green", "yellow", "black", "red"); $array3 = array ("red", "yellow", "brown", "black"); 试试这个,第一个数组的一个简单foreach,然后匹配所有数组都有这个值,如果有,将它添加到一个数组中 <?php $array1 = ar
$array1 = array ("red", "yellow", "brown", "green");
$array2 = array ("green", "yellow", "black", "red");
$array3 = array ("red", "yellow", "brown", "black");
试试这个,第一个数组的一个简单foreach,然后匹配所有数组都有这个值,如果有,将它添加到一个数组中
<?php
$array1 = array ("red", "yellow", "brown", "green");
$array2 = array ("green", "yellow", "black", "red");
$array3 = array ("red", "yellow", "brown", "black");
$matched = [];
foreach ($array1 as $key => $value) {
if ($array2[$key] === $value && $array3[$key] === $value) {
$matched[$key] = $value;
}
}
print_r($matched);
您不会得到索引2
,因为黄色在1
你也可以使用
您可以使用它来解决此问题,因为它只会在具有相同键的每个数组中返回相等的值:
输出:
Array
(
[1] => yellow
)
1)您在代码中拼错了
usort
。2) 这是家庭作业吗?这不是你想要实现的理想功能。看看它更适合这个问题。同样,“红色”不也应该出现在结果中吗?它出现在所有三个数组中。结果仅为黄色。我认为您需要添加整个赋值,因为目前尚不清楚您需要在这里实现什么以及如何实现。如何使用usort函数获得输出?如果没有foreachusort,将无法减少数组,因此无法使用该函数。请告诉任何其他方法,比较函数和usort?您的函数后面没有内置什么(或者我忘了-不再大量使用php)。你可以用数组替换foreach_walkDid@LawrenceCherone回答帮助,詹姆斯?
Array
(
[1] => yellow
)
$array1 = array_filter($array1, function ($value, $key) use ($array2, $array3) {
return $array2[$key] === $value && $array3[$key] === $value;
}, ARRAY_FILTER_USE_BOTH);
$array1 = array ("red", "yellow", "brown", "green");
$array2 = array ("green", "yellow", "black", "red");
$array3 = array ("red", "yellow", "brown", "black");
print_r(array_intersect_assoc($array1, $array2, $array3));
Array
(
[1] => yellow
)