117.info
人生若只如初见

php中array_intersect使用无效怎么解决

如果使用array_intersect()函数时无效,可能有以下几个原因:

  1. 数组中的值是字符串,但是存储的是数字形式。这种情况下,您可以使用array_map()函数将字符串转换为数字。
$array1 = ['1', '2', '3'];
$array2 = [2, 3, 4];

$array1 = array_map('intval', $array1);

$result = array_intersect($array1, $array2);
print_r($result);
  1. 数组中的值是对象,但是对象的比较是通过引用,而不是值。如果想比较对象的属性值,可以通过自定义一个匿名函数来实现。
class Item {
    private $id;

    public function __construct($id) {
        $this->id = $id;
    }

    public function getId() {
        return $this->id;
    }
}

$item1 = new Item(1);
$item2 = new Item(2);
$item3 = new Item(3);

$array1 = [$item1, $item2];
$array2 = [$item2, $item3];

$result = array_intersect($array1, $array2);
print_r($result); // []

$result = array_uintersect($array1, $array2, function($a, $b) {
    return $a->getId() <=> $b->getId();
});
print_r($result); // [$item2]

请确保比较的数据类型是一致的,并且按照您的需求使用适当的比较函数。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe6e8AzsLAQ5TAVY.html

推荐文章

  • php生成json怎样处理大数据

    在PHP中生成JSON时,处理大数据需要考虑内存限制和执行时间限制。以下是一些建议来处理大数据: 分批处理:将大数据分成较小的批次,每次处理一批数据,然后将结...

  • php生成json如何优化速度

    为了优化 PHP 生成 JSON 的速度,您可以尝试以下方法: 使用 json_encode() 函数:这是 PHP 中用于将数组或对象转换为 JSON 格式的内置函数。它比手动构建 JSON ...

  • php生成json能加密吗

    PHP 生成的 JSON 数据本身不能直接加密,但您可以在将 JSON 数据发送给客户端之前对其进行加密。您可以使用各种加密算法(如 OpenSSL、AES 等)对 JSON 数据进行...

  • php生成json怎样保证准确

    要确保PHP生成的JSON数据的准确性,可以遵循以下几个步骤: 确保数据来源可靠:首先,确保你从数据库或其他数据源获取的数据是准确和完整的。 数据验证:在生成J...

  • Java怎么在Array和List之间进行转换

    在Java中,可以使用toArray()方法将List转换为Array,也可以使用Arrays.asList()方法将Array转换为List。以下是具体的示例代码:
    将List转换为Array:

  • vscode如何运行代码

    在VSCode中运行代码有以下几种方式: 打开VSCode后,点击左侧的“资源管理器”按钮,找到你的代码文件,右键点击并选择“在终端中打开”(或使用快捷键Ctrl+`)。...

  • php中array_intersect的用法是什么

    array_intersect函数是PHP中用于计算数组的交集的函数。它接受多个数组作为参数,并返回一个包含这些数组中共同元素的新数组。
    语法:
    array_intersec...

  • php数组不能添加成员怎么解决

    在PHP中,数组可以通过以下几种方式添加成员: 使用索引添加成员:
    $arr = array();
    $arr[0] = 'value1';
    $arr[1] = 'value2'; 使用array_push()...