이중 레벨 배열이 있습니다. 첫 번째 레벨에는 약 10 개의 인덱스가 있습니다. 여기에는 각각 단어가 들어있는 275 개의 요소 배열이 포함됩니다.array_merge가 예상대로 작동하지 않습니다.
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는 "mother array"에 대한 참조이고, $ memory는 잉여 단어의 배열이며, $ index는 for 루프를 반복하는 곳이며, $ limit는 두 번째 레벨의 "array"길이입니다. 이 경우 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)를 실행 단지 $ 배열 [$ C]의 추가 변수없이 시험 번호를 출력한다. 어떻게 해결할 수 있습니까?
브릴리언트. 그것에 대한 귀하의 도움에 감사드립니다. – DavidHyogo