php - 将数组与 array_diff 进行比较 - 但仅比较第一个字符

标签 php mysql arrays csv diff

我遇到了以下情况。 我在 mysql 数据库中得到了一个 csv 文件和一些数据。 我想加载 csv 文件并将其与 mysql 数据库中的一行进行比较。

csv 文件有以下类型的数据:

eet003 240
eet003 180
eet003 280
eet299 100 

但是在数据库中的数据是这样的:

eet003
eet299

所以这两个数据都存储在数组中。

$array1
$array2

我想比较两个数组并将结果保存在第三个数组中。 $diff = array_diff($array1, $array2)

但我只想比较数据的前 6 个字符。所以现在 eet003 240 与 eet003 不同。但对我来说是一样的。我只需要 eet003 例如

我怎样才能做到这一点?我现在是 substr 函数,但 array1 是按以下方式创建的:

$rows = array();    //aray for csv file
$rows = file('pinesite_eet.csv', FILE_IGNORE_NEW_LINES);    //write csv in array

我不知道 du 如何在将 csv 加载到数组中时从 csv 中剪切字符串。 第二个数组是从 mysql_query 写入的。 关于我如何做到这一点有什么建议吗?

最佳答案

我认为这样的事情应该可行:

(这里我只是使用array_udiff()和一个匿名函数,我只使用文件数据的第一部分并将其与数据库数据进行比较)

<?php

    $result = array_udiff($fileData, $dbData, function($a, $b) {
        if(strcasecmp(explode(" ", $a)[0], $b) == 0)
            return 0;
        return strcasecmp(explode(" ", $a)[0], $b);
    });

?>

关于php - 将数组与 array_diff 进行比较 - 但仅比较第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29609211/

相关文章:

PHP 将用户重定向到登录后离开的页面

java - 3D 数组中的 ArrayIndexOutOfBoundsException

javascript - JS中获取随机数

javascript - 使用 javascript 检查 URL 是否包含值

PHP json_decode 一个 json_encoded 字符串

php - Laravel 尝试播种未要求的列

php - 创建新用户后 mySQL 访问被拒绝错误

mysql - 在 SQL 插入中添加破折号而不进行计算

mysql - 左连接不存在

c++ - 在 OpenCV 中绘制多边形?