0

PHP 我有两个单数组,它们是从两个表中填充的,带有 ID。从一个数组中,我需要能够删除所有出现超过 X 个数字的相同值的 ID。我正在这样做:

volunteerRoleQuery = mysql_query("SELECT member_no, role_code, volunteer_date FROM         evntrole WHERE volunteer_date > '$today' ");
$numberEvntRole = mysql_numrows($volunteerRoleQuery);

while ($row = mysql_fetch_assoc($volunteerRoleQuery)) {
    $member_no = $row["member_no"];
    array_push($volunteersArray, $member_no);
}

fputcsv($output, array('Member number', 'Full name', 'First name', 'Surname', 'Email', 'Mobile', 'Phone'));

$teamMemQuery = mysql_query("SELECT member_number, activity_code, modify_date FROM  teammem WHERE modify_date > '$today' ");
    $numberTeamMem = mysql_numrows($teamMemQuery);

if ($numberTeamMem > 0) {
    while ($row = mysql_fetch_assoc($teamMemQuery)) {
        $member_no = $row["member_number"];
        array_push($teamMemArray, $member_no);        
    }
}

//todo: 只保留超过 x 个事件的成员 ID,比如 3 // 例如 1,1,2,3,3,3,3,6,7,7,7,7 将只保留 3,7 //这确保了我们不会要求成员仅参加一些活动就自愿参加。

$result=array_unique($teamMemArray);

array_diff_ORG_NEW($teamMemArray,$volunteersArray, 'VALUES');

$result=array_unique($teamMemArray);
sort($result);
foreach ($result as &$value) {
        $resultNames = mysql_query("SELECT first_name, surname, mobile, phone_home, e_mail  FROM names WHERE member_no='$value'");
        $rowNames = mysql_fetch_array($resultNames);
        $firstName = $rowNames['first_name'];
        $surname = $rowNames['surname'];

            if ($surname > "") {
                fputcsv($output, array($value, $names, $firstName, $surname, $email, $mobile, $homePhone));
        }
}
4

1 回答 1

0

不确定我是否正确理解了您的需求,但是,您是否查看过: PHP 中的array_count_values

它为您提供另一个数组,其中包含为关键字找到的匹配数。

您可以遍历它并删除结果大于 X 的任何键?

于 2013-03-20T00:17:03.903 回答