仅重置密钥索引时拆分数组

时间:2014-04-12 03:47:24

标签: php arrays sorting indexing

(随意跳转到 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)数组键索引时将大数组拆分成块。

0 个答案:

没有答案