(随意跳转到 TL; DR 版本下面..
我有一个RGB值数组,形成62x62像素的图像。 (那是3844个元素)。
[$ard_array]
Array ( [0] => leds[1] = CRGB(127,204,53)
[1] => leds[2] = CRGB(100,216,32)
[2] => leds[3] = CRGB(79,231,22)
[3] => leds[4] = CRGB(79,231,22)
....
....
[3843] => leds[3844] = CRGB(255,255,255)
)
现在,我想将此数组拆分为图像的实际列表示(每个数组一列),所以:
$ard_split = (array_chunk($ard_array, 62));
foreach ( $ard_split as $element ){
$element = array_values($element);
// $element = fix_keys($element);
print_r($element );
}
(fix_keys() from here) 这给了我
Array ( [0] => leds[1] = CRGB(127,204,53)
[1] => leds[2] = CRGB(100,216,32)
[2] => leds[3] = CRGB(79,231,22)
[3] => leds[4] = CRGB(69,240,19)
...
...
[61] => leds[62] = CRGB(202,251,191)
)
但下一个是:
Array ( [0] => leds[63] = CRGB(127,204,53)
[1] => leds[64] = CRGB(100,216,32)
[2] => leds[65] = CRGB(79,231,22)
[3] => leds[66] = CRGB(69,240,19)
...
...
[61] => leds[124] = CRGB(202,251,191)
)
因此重置了数组索引,但我还需要重置元素。 我已经尝试了here以及我找到的其他人的功能 - 但没有运气。
我真正需要两种不同的选择:
1 - 为每个块启动一个所谓的"new array"
,如下所示:
Array ( [0] => leds[1] = CRGB(127,204,53)
[1] => leds[2] = CRGB(100,216,32)
[2] => leds[3] = CRGB(79,231,22)
[3] => leds[4] = CRGB(79,231,22)
....
....
[61] => leds[62] = CRGB(255,255,255)
)
( repeat same array structure different values )
Array ( [0] => leds[1] = CRGB(127,11,53)
[1] => leds[2] = CRGB(141,216,32)
[2] => leds[3] = CRGB(179,22,54)
[3] => leds[4] = CRGB(79,231,22)
....
....
[61] => leds[62] = CRGB(255,255,255)
)
和 2 - 只重置数组KEYS索引,保持主索引完好无损:
Array ( [0] => leds[1] = CRGB(127,11,53)
[1] => leds[2] = CRGB(141,216,32)
[2] => leds[3] = CRGB(179,22,54)
[3] => leds[4] = CRGB(79,231,22)
....
....
[61] => leds[62] = CRGB(255,255,255)
)
Array ( [62] => leds[1] = CRGB(127,11,53)
[63] => leds[2] = CRGB(141,216,32)
[64] => leds[3] = CRGB(179,22,54)
[65] => leds[4] = CRGB(79,231,22)
....
....
[124] => leds[62] = CRGB(255,255,255)
)
技术奖金问题:这个函数在内存上似乎非常沉重(更不用说从GD创建这个数组的函数) - 所以最好将这个数组拆分为62次迭代循环源(在构建它时)或拆分完整的结果数组(62x62 = 3844)??
TL; DR版本:
在处理multidimentional数组时,我想知道如何在重置(ONLY或/和ALSO)数组键索引时将大数组拆分成块。