首页 > 解决方案 > 匹配两个数组,如果没有匹配的 ID,则将 post 置于挂起状态

问题描述

所以我有点困惑,需要社区的一些帮助,所以我有一段正在处理的代码,我想比较两个数组,然后如果 ID 不匹配,则将帖子置于待处理状态状态。

我有以下方法

/**
 * Update Office titles
 */
function update_office_titles() {
    $office_data = build_offices_array();
    $compare_ids = [];
    foreach ($office_data as $office) {
        $compare_ids[] = [
            'wp_office_id' => $office['office_id']
        ];
    }
    foreach (api_offices_raw() as $api_office_id) {
        $compare_ids[] = [
            'api_id' => $api_office_id->id
        ];
    }

    print_r($compare_ids);

    echo 'All of the office titles have been updated';
}

在这里,我获取所有office_idpost_meta 并获取数据库中的所有 post_meta 值:

foreach ($office_data as $office) {
    $compare_ids[] = [
        'wp_office_id' => $office['office_id']
    ];
}

我得到以下回报:

[243] => Array
    (
        [wp_office_id] => 3
    )

[244] => Array
    (
        [wp_office_id] => 4
    )

然后我有这个 foreach 循环通过带有 ID 的 API:

foreach (api_offices_raw() as $api_office_id) {
    $compare_ids[] = [
        'api_id' => $api_office_id->id
    ];
}

我得到这个输出:

[246] => Array
    (
        [api_id] => 1
    )

[247] => Array
    (
        [api_id] => 3
    )

这是我试图实现的目标:

检查api_id并将它们与wp_office_id键值匹配,如果有匹配的 ID,则不要执行任何操作,否则调用 wp_update_post 并将所有不匹配$office['post_id']的 ID的状态设置为挂起。wp_office_id

感谢所有帮助!

标签: phpwordpress

解决方案


推荐阅读