能够使用 POST 使用现有数据来评价传入数据

To be able to critique incoming data with existing data with POST

POST是否可以将给定数据与现有数据匹配?

$existingRecords = "1,3,4,6";
$_POST["newRecords"] = "6,4,3,1";

以上两个代码中有1,3,4,6个数字。现有代码中的数字是定期的。 (排序:从小到大)

但是新发的图结构不规则。 如何做到这两种结构配对?

我试过这些;

$existingRecords = "1,3,4,6";
$_POST["newRecords"] = "6,4,3,1";

$existingRecordsArray = explode(',', $existingRecords);
$newRecordsArray = explode(',', $_POST["newRecords"]);

if($newRecordsArray == $existingRecordsArray) {
   echo "compatible";
} else { 
   echo "incompatible"; 
}

但是我没能成功。你能给我一个方法吗?

简单地说 // 新传入的数据会从小到大排序

您可以遍历 $newRecords 并检查当前数字是否包含在 $existingRecords 中。如果不是,则return false,如果是,则继续。如果return值为true,则包含所有数字。作为奖励,如果您需要 all $existingRecords 中的数字,请检查它们的 lengths 是否相等:

<?php
function check($existing, $new) {
    $existingArray = explode(",", $existing);
    $newArray = explode(",", $new);
    if (count($newArray) !== count($existingArray)) return false; // if length is not equal, they're not all contained
    foreach ($newArray as $n) {
        if (!in_array($n, $existingArray)) return false;
    }
    return true;
}
$existingRecords = "1,3,4,6,5";
$newRecords = "6,4,3,1,5";
var_dump(check($existingRecords, $newRecords));

Demo

您可以使用array_diff检查数组

$existingRecords = "1,3,4,6";
$_POST["newRecords"] = "6,4,3,1";

$existingRecordsArray = explode(',', $existingRecords);
$newRecordsArray = explode(',', $_POST["newRecords"]);

// use array_diff function to check if both arrays are same.
$result = array_diff($existingRecordsArray, $newRecordsArray);

if(empty($result)){
    echo "compatible";
}else{
    echo "incompatible"; 
}

如果你只需要知道两个数组的值是否完全相同(不管键和顺序),那么不用array_diff,这是一个简单的方法:

sort($existingRecordsArray);
sort($newRecordsArray);

if($existingRecordsArray == $newRecordsArray){
    echo "compatible";
}else{
     echo "incompatible"; 
}

如果我没理解错的话,你是想比较一下两者是否相等。 explodeing 你已经完成了一半我会说:

$existingRecords = "1,3,4,6";
$_POST["newRecords"] = "6,4,3,1";

$existingRecordsArray = explode(',', $existingRecords);
$newRecordsArray = explode(',', $_POST["newRecords"]);

if(empty(array_diff($newRecordsArray, $existingRecordsArray)) {
   echo "compatible";
} else { 
   echo "incompatible"; 
}

根据您是想找出两者的共同点还是不同点,请考虑 array_intersect for the former and array_diff 后者。