Я создал форму с тремя флажками. Каждый флажок соответствует списку рассылки в базе данных. Возможно, я получаю повторяющиеся значения, когда я проверяю 2 флажка. Я попытался использовать функцию PHP array_unique() и функции jQuery.unique() для удаления всех повторяющихся адресов электронной почты из массива.Удалить дублирующиеся значения в списке массивов php
JQuery:
<script>
$("#sendMessage").submit(function(e) {
$("input[type=checkbox]").each(function() {
if($(this).is(":checked")) {
var string = $(this).val();
$.ajax({
url: "include/checkbox.inc.php",
type: "POST",
data: ({query: string, type: "nonurgent"}),
dataType:"JSON",
success: function(data) {
keep_cb = data;
mail(keep_cb);
}
});
}
});
});
включают/checkbox.inc.php:
<?php
// this page checks which mailing group is selected, urgent or non urgent
include("mysession_start.inc.php");
include("db.inc.php");
$testarray = array();
$noDupes = array();
if(isset($_POST['query'])) {
$checkbox_value = $_POST['query'];
}
if(isset($_POST['type'])) {
$type = $_POST['type'];
}
if($type == "nonurgent") {
$cb_query = "SELECT email_nonurgent FROM client_addresses WHERE $checkbox_value=1";
if($resultq = mysqli_query($link, $cb_query)) {
$s_count = mysqli_num_rows($resultq);
while($rowq = $resultq->fetch_array()) {
$testarray[] = $rowq["email_nonurgent"];
$noDupes = array_unique($testarray);
}
print json_encode($noDupes);
}
} else {
$cb_query = "SELECT email_urgent FROM client_addresses WHERE $checkbox_value=1";
if($resultq = mysqli_query($link, $cb_query)) {
$s_count = mysqli_num_rows($resultq);
while($rowq = $resultq->fetch_array()) {
$testarray[] = $rowq["email_urgent"];
}
print json_encode($testarray);
}
}
?>
С 2 флажков щелкнул, вполне возможно, что я получаю дубликаты адресов электронной почты, которые находятся в том же массиве ($ testarray на странице php). Я искал по всему Интернету, но не мог узнать, что я делаю неправильно.
Не могли бы вы включить код, где вы пытались использовать 'array_unique()'? Не забывайте, что он * возвращает * новый массив, вместо того, чтобы изменять тот, который вы передаете, в отличие от 'sort()'. –
«... дублировать адреса электронной почты из массива». Какую конкретную переменную в приведенном выше коде вы указываете? – Steve
Это много кода, но похоже, что ваша проблема может быть выражена [всего несколькими словами] (http://stackoverflow.com/questions/16063590). Кроме того, вы должны показать, что вы пробовали, потому что я не могу угадать, что может пойти не так с чем-то [так же просто, как 'array_unique()'] (http://stackoverflow.com/q/307650/1446005). – RandomSeed