首页 > 解决方案 > PHP将项目推送到数组中会在数组中创建单独的数组

问题描述

我创建了一个生成随机数的函数,该函数接受开始数、结束数、要生成的数字数量以及排除数字数组的能力。它看起来像这样:

function random_numbers($min, $max, $quantity, $exclude) {
    $numbers = range($min, $max);
    $left = array_diff($numbers, $exclude);
    shuffle($left);
    $remain = array_slice($left, 0, $quantity);
    return $remain;
}

排除数组如下所示:

Array ( [0] => 217 [1] => 321 [2] => 1591 [3] => 1069 [4] => 1532 ) 

然后我想将新生成的数字与排除数组合并并将其保存到 WordPress post_meta,所以我做了以下操作:

$exclude = get_post_meta($product_id, '_numbers_sold', false);

$numbers = random_numbers('1', $max_tickets, $qty, $exclude);

foreach($numbers as $number){
    $exclude [] = $number;
}

update_post_meta($product_id, '_numbers_sold', $sold_numbers);

该函数有效,但将新数字推送到数组会创建单独的数组。我也尝试过array_merge,但我得到了相同的结果。

输出如下:

Array
(
    [0] => Array
        (
            [0] => 217
            [1] => 321
            [2] => 1591
            [3] => 1069
            [4] => 1532
        )

    [1] => 597
    [2] => 1853
    [3] => 582
    [4] => 1887
    [5] => 1484
)

为什么会发生这种情况?它将两个数组分开。是因为数组键已经存在吗?

标签: phparrayswordpressarray-merge

解决方案


推荐阅读