Php 比较两个数组并检索第二个数组的值

Php 比较两个数组并检索第二个数组的值,php,mysql,Php,Mysql,array1=数组() array2=数组() 两个数组都有来自数据库的值 Array2包含培训列表,而array1包含已参加培训的列表 我想比较array1和array2,并检索不在array1中的培训列表 以下是我目前正在执行的代码片段: $query2 = "SELECT trainingName, rank FROM crewtraininglist WHERE crewId = '$crewId'"; $result2 = mysqli_query($conn, $query2);

array1=数组()

array2=数组()

两个数组都有来自数据库的值

Array2包含培训列表,而array1包含已参加培训的列表

我想比较array1和array2,并检索不在array1中的培训列表

以下是我目前正在执行的代码片段:

$query2 = "SELECT trainingName, rank FROM crewtraininglist WHERE crewId = '$crewId'";
$result2 = mysqli_query($conn, $query2);

$array = array();
while($row = mysqli_fetch_assoc($result2)) 
{        
    $rank = $row['rank'];
    $training = $row['trainingName'];
    $array[] = $row['trainingName'];
    echo "<li>$training</li>";
    //echo "<option value='{$row['name']}'>{$row['name']}</option>";
}

$array2 = array();

$query3 = "SELECT `trainingName`, `rank` FROM `traininglist` WHERE rank LIKE '%$rank%'";
$result3 = mysqli_query($conn, $query3);
while($row = mysqli_fetch_assoc($result3)) 
{
    $array2[]=$row['trainingName'];        
}

$array3 = array_diff($array,$array2);
print_r ($array3);
Array2的输出为:

Array ( 
    [0] => License + COC & Endrs. 
    [1] => Basic Training + COP 
    [2] => Personal Safety & Social Responsibility 
    [3] => Proficiency in Survival Craft & Rescue Boat (PSCRB) + COP 
    [4] => Advance Training in Firefighting (AFF) + COP 
    [5] => Medical Emergency First Aid (MEFA) + COP 
    [6] => Medical Care (MECA) + COP [7] => Radar Observing & Ploting Courses (ROC) 
    [8] => Operational Use of Automatic Radar Ploting Aids (ARPA) 
    [9] => Radar Simulator Course (RSC) 
    [10] => Ship Simulator & Bridge Team Work (SSBT) w/BRM 
)
使用


有关更多信息,请参阅。

我尝试了数组_diff,但它返回array1@Laluna用一些测试数据制作一个简单的示例,您可以在这里向我们展示,以演示您希望如何准确地比较这两个阵列。只有两个包含3-5个元素的阵列以及归档的目标。(+同时添加您当前的尝试/代码)您是否可以发布几个示例数组,因为数组_diff应该可以工作。除非值不完全相同。欢迎使用堆栈溢出!对于将来的问题,一定要查看这些文档--创建清晰、文档齐全、广受欢迎的帖子。这看起来可能是的重复,但用不同的词,但目标相同…我尝试了array_diff,但是它返回array1的值,为两个数组添加示例数据。将参数传递给array_diff()的顺序是important@MarkBaker我所给的一切都是正确的OP@NiranjanNRaju-我想到的是OP的评论,他们试过了,但没用,而不是你自己(正确)的论点顺序
Array ( 
    [0] => License + COC & Endrs. 
    [1] => Basic Training + COP 
    [2] => Personal Safety & Social Responsibility 
    [3] => Proficiency in Survival Craft & Rescue Boat (PSCRB) + COP 
    [4] => Advance Training in Firefighting (AFF) + COP 
    [5] => Medical Emergency First Aid (MEFA) + COP 
    [6] => Medical Care (MECA) + COP [7] => Radar Observing & Ploting Courses (ROC) 
    [8] => Operational Use of Automatic Radar Ploting Aids (ARPA) 
    [9] => Radar Simulator Course (RSC) 
    [10] => Ship Simulator & Bridge Team Work (SSBT) w/BRM 
)
$array1 = array()// from database
$array2 = array()// from database

$array3 = array_diff($array2,$array1);