I have an array;
[1]=> array(5) { ["chid"]=> string(1) "1" ["chtext"]=> string(9) "Excellent" ["chvotes"]=> string(2) "13" ["weight"]=> string(1) "1" ["colour"]=> string(7) "#b3c7e0" }
The colour is added to the array from a text field. The array could be any length but the colour is at a fixed length of 4.
$poll = $entity->choice; // Array $poll_colours = array(); // Create new array for colours $colours = $entity->field_poll_colours['und'][0]['value']; // Get value from text field $poll_colours = explode(',', $colours); // Explode from comma foreach($poll as $key => $value) { $poll[$key]['colour'] = $poll_colours[0]; $poll[$key]['colour'] = ltrim($poll[$key]['colour']); unset($poll_colours[0]); sort($poll_colours); } unset($poll_colours);
What I want to achieve is, if the length of the array is more than 4, then repeat the colours (1-4).
Desired result:
[1]=> array(5) { ["chtext"]=> "A" ["colour"]=> "Cyan" } [2]=> array(5) { ["chtext"]=> "B" ["colour"]=> "Magenta" } [3]=> array(5) { ["chtext"]=> "C" ["colour"]=> "Yellow" } [4]=> array(4) { ["chtext"]=> "D" ["colour"]=> "Black" } [5]=> array(5) { ["chtext"]=> "E" ["colour"]=> "Cyan" // Repeat colour[1] } [6]=> array(5) { ["chtext"]=> "F" ["colour"]=> "Magenta" // Repeat colour[2] } ... // Repeat colour[3] ... // Repeat colour[4] ... // Repeat colour[1] etc...