首页 > 解决方案 > 在将项目移动到列表之前检查所有列表中的重复项

问题描述

我有一个从 master.csv 文件填充的主列表,然后我从 list1.csv、list2.csv、list3.csv 等填充了多个(10+)列表。我想将项目从 masterlist 移动到 list1,但需要检查项目是否不在任何列表中,然后才能移动这里的代码,但只使用 3 个列表,但还有更多,但我无法在移动之前检查重复项

索引.php

<!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Move Items From Master List</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js">
    </script>

</head>

<select name=master[] id=master class="master" multiple="multiple" size='23'>
<?php   
    $file = fopen("temp.csv", "r");
    while (($row = fgetcsv($file, 0, ",")) !== FALSE) {
        $master = $row[0];
?>
    <option><?php echo $master; ?></option>
<?php
    }
?>
</select> 

<form action="update.php" method="post">
    <input type=button class="master" name=b1 id=b1 value='Move >'>
    <input type=button class="master" name=b2 id=b2 value='< Remove'>&nbsp;&nbsp;&nbsp;&nbsp;
<select name=list1[] id=list1 multiple="multiple" class=master>
<?php   
    $file = fopen("list1.csv", "r");
    while (($row = fgetcsv($file, 0, ",")) !== FALSE) {
        $list1 = $row[0];
?>
    <option value="<?php echo $list1;?>"><?php echo $list1;?></option>
<?php
    }
?>
</select>
&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="Save File" name="submit">
</form><br /><br />

<form action="update.php" method="post">
    <input type=button class="master" name=b3 id=b3 value='Move >'>
    <input type=button class="master" name=b4 id=b4 value='< Remove'>&nbsp;&nbsp;&nbsp;&nbsp;
<select name=list2[] id=list2 multiple="multiple" class=master>
<?php   
    $file = fopen("list2.csv", "r");
    while (($row = fgetcsv($file, 0, ",")) !== FALSE) {
        $list2 = $row[0];
?>
    <option value="<?php echo $list2;?>"><?php echo $list2;?></option>
<?php
    }
?>
</select>
&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="Save File" name="submit">
</form>

 <script>
 $("#b1").click(function() {
    var source = $("#master");
    var target = $("#list1");
    $("option:selected", source).each(function() {
        target.append("<option>" + $(this).text() + "</option>");
        $("option[value= '" + $(this).val() + "' ]", source).remove();
    });
    $('option', target).prop('selected', true);
});

$("#b2").click(function(){
    var source = $("#list1");
    var target = "#master";
    $("option:selected", source).each(function() {
        master.append("<option>"+$(this).text()+"</option>");
        $("option[value= '"+ $(this).val() + "' ]", source).remove();
    });
    $('option', source).prop('selected', true);
});

$("#b3").click(function() {
    var source = $("#master");
    var target = $("#list2");
    $("option:selected", source).each(function() {
        target.append("<option>" + $(this).text() + "</option>");
        $("option[value= '" + $(this).val() + "' ]", source).remove();
    });
    $('option', target).prop('selected', true);
});

$("#b4").click(function(){
    var source = $("#list2");
    var target = "#master";
    $("option:selected", source).each(function() {
        master.append("<option>"+$(this).text()+"</option>");
        $("option[value= '"+ $(this).val() + "' ]", source).remove();
    });
    $('option', source).prop('selected', true);
});
    </script>

和我的 update.php 文件

<?php
header("Location:".$URL.'index.php');

if ($_POST['list1']) {
$list1 = $_POST['list1'];
$list1unique = array_unique($list1);
sort($list1unique);
foreach ($list1unique as $key => $value) {
    $result.=$value."\n";
}
file_put_contents('list1.csv',$result);
}

if ($_POST['list2']) {
$list2 = $_POST['list2'];
$list2unique = array_unique($list2);
sort($list2unique);
foreach ($list2unique as $key => $value) {
    $result.=$value."\n";
}
file_put_contents('list2.csv',$result);
}

?>

标签: phplistduplicatesmove

解决方案


推荐阅读