php - array_merge 没有按预期工作

标签 php arrays multidimensional-array array-merge

我有一个双层数组。 第一级有大约 10 个索引。 这些包含每个到 275 个元素的数组,每个元素包含一个单词。

Array
(
[0] => Array
    (
    [0] => Suspendisse
    [1] => Nam.
    [2] => Amet
    [3] => amet
    [4] => urna
    [5] => condimentum
    [6] => Vestibulum
    [7] => sem
    [8] => at
    [9] => Curabitur
    [10] => lorem
    .... to [275]
    )
[1] => Array
    (
    ... you get the idea
    )
... 10 elements total
)

现在,由于一些情况,比如添加的图像占用了空间,我有时需要重新计算剩余的单词数并重新分配仍然剩余的数组。

为此,我编写了下面的函数,使剩余的数组成为一个很大的长单词数组,然后我可以将 array_chunk 分成正确的比例。 &$array 是对“母数组”的引用,$memory 是多余的单词数组,$index 是我们迭代 for 循环的地方,$limit 是第二级的“数组”长度,在这个案例275

function redistribute(&$array,$memory,$index,$limit)
{
$ret[] = $array[0];
// skip past the current processed items
for($c=1;$c<$index;$c++)
    {
    $ret[] = $array[$c];
    }
// apply current item
$ret[] = $array[$index];

//join the rest into one big array off words;
$r2=$memory;
$length = count($array);
for($c=$index+1;$c<$length;++$c)
    {
    array_merge($r2,$array[$c]);
    print_r($r2);
    }
}

问题

array_merge(arr1,arr2) 似乎不起作用。

执行时

redistribute($splitupchunk,array('test','test2','test3','test4'),$i,275);

print_r($r2) 只打印测试数字,没有来自 $array[$c] 的额外变量。 我该如何解决这个问题?

最佳答案

我找到了它不起作用的原因。 我假设 array_merge 通过引用而不是返回来工作。

通过制作线条

array_merge($r2,$array[$c]);

$r2 = array_merge($r2,$array[$c]);

它现在按预期工作。

关于php - array_merge 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11290423/

相关文章:

PHPUnit:现有对象的模拟方法

java - 我的代码有什么错误?尝试构建二维矩阵

java - 将整数读入二维数组

java - 仅在声明最后一个数组时出现的神秘错误

c - sprintf for 循环段错误

arrays - 如何从 swift 3 中给出的数组中删除所有索引值

C 具有可变大小行的二维数组

php - 使用 TDD 创建报告

php - 如何根据某些条件执行 MySQL COUNT

php - 在mysql中添加变量