2013-03-20 1 views
0

PHP У меня есть два одиночных массива, которые заполнены из двух таблиц с идентификаторами. Из одного массива мне нужно убрать все идентификаторы того же значения, в которых появляется больше, чем число X. Я делаю это:Array удаление дубликатов записей, где они превышают значение X

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: только сохранить 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)); 
     } 
} 
+0

Массив может выглядеть так: 1,1,1,4,4,5,6,7,7,7,7 и т. Д. Если значение X равно 3, то останется только 7. Любые примеры были бы замечательными. –

ответ

0

Не уверен, что я правильно понял, что вам нужно, но вы смотрели в: array_count_values из PHP?

Он дает вам еще один массив с количеством совпадений, найденных для ключевого слова.

Вы можете просто пропустить его и удалить любые ключи с результатами, большими, чем X?

+0

Общая задача состоит в том, чтобы сравнить тех людей, которые добровольно вызвались в течение определенного периода времени с тем, сколько событий они совершили. Есть 2 переменные: количество выполненных событий и количество лет, чтобы оглянуться назад. –

+0

У любого есть какой-либо примерный код для удаления всех значений, если они не соответствуют критериям, указанным выше. –

+0

Прошу прощения, вы не объясняете правильно или не показываете достаточно кода, чтобы я мог точно понять, что вам нужно. Измените свой вопрос и добавьте краткую информацию, и я помогу вам. –

Смежные вопросы