hexagon logo

Multi Dimensional Array to Single Dimension Array

Here's something I always seem to forget when I need it and have to think a little bit to remember (so why not document it here for my future self ps. you're memory is deteriorating quickly future self!).

            ASSIGN/ARRAY_1=ARRAY({PNT69},{CIR16},{CIR17})
            ASSIGN/ARRAY_2=ARRAY({LIN12},{PLN6},{PLN7},{PLN8},{LIN13})
            ASSIGN/ARRAY_3=ARRAY({LIN14},{PLN9},{PLN10},{PLN11},{LIN15})
$$ NO,
            load as many arrays into below vvvv
            ASSIGN/MULTI_ARRAY=ARRAY(ARRAY_1,ARRAY_2,ARRAY_3)
$$ NO,
            Push all items in multi dimensional array into a single dimensional array.
            
            ASSIGN/SINGLE_ARRAY=0
            ASSIGN/CNT=1
            ASSIGN/O_CNT=1
            DO/
            ASSIGN/I_CNT=1
            DO/
            ASSIGN/SINGLE_ARRAY[CNT]=MULTI_ARRAY[O_CNT,I_CNT]
            ASSIGN/CNT=CNT+1
            ASSIGN/I_CNT=I_CNT+1
            UNTIL/I_CNT > LEN(MULTI_ARRAY[O_CNT])
            ASSIGN/O_CNT=O_CNT+1
            UNTIL/O_CNT > LEN(MULTI_ARRAY)


You super users out there.. if you know a quicker, simpler, easier way to do this I would greatly appreciate it if you shared it below.
Parents
  • Try to do it less longer... but failed (only a line less...)
    and : it was a funny challenge Slight smile !


    ASSIGN/ARRAY1=ARRAY({PLN1},{PLN2})
    ASSIGN/ARRAY2=ARRAY({CIR1},{CIR2})
    ASSIGN/ARRAY3=ARRAY({PLN3},{CIR3})
    ASSIGN/ARRAY4=ARRAY({PLN4},{PLN5},{CIR4},{CIR5})
    ASSIGN/M_ARRAY=ARRAY(ARRAY1,ARRAY2,ARRAY3,ARRAY4)
    ASSIGN/CNT_1=0
    ASSIGN/CNT_2=1
    DO/
    ASSIGN/CNT_1=CNT_1+1
    ASSIGN/V1=M_ARRAY[CNT_1]
    V3 =LOOP/START,ID=YES,NUMBER=LEN(V1),START=1,SKIP=,
    OFFSET:XAXIS=0,YAXIS=0,ZAXIS=0,ANGLE=0
    ASSIGN/S_ARRAY[CNT_2]=V1[V3]
    ASSIGN/CNT_2=CNT_2+1
    LOOP/END
    UNTIL/CNT_1==LEN(M_ARRAY)
    COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,
    S_ARRAY
Reply
  • Try to do it less longer... but failed (only a line less...)
    and : it was a funny challenge Slight smile !


    ASSIGN/ARRAY1=ARRAY({PLN1},{PLN2})
    ASSIGN/ARRAY2=ARRAY({CIR1},{CIR2})
    ASSIGN/ARRAY3=ARRAY({PLN3},{CIR3})
    ASSIGN/ARRAY4=ARRAY({PLN4},{PLN5},{CIR4},{CIR5})
    ASSIGN/M_ARRAY=ARRAY(ARRAY1,ARRAY2,ARRAY3,ARRAY4)
    ASSIGN/CNT_1=0
    ASSIGN/CNT_2=1
    DO/
    ASSIGN/CNT_1=CNT_1+1
    ASSIGN/V1=M_ARRAY[CNT_1]
    V3 =LOOP/START,ID=YES,NUMBER=LEN(V1),START=1,SKIP=,
    OFFSET:XAXIS=0,YAXIS=0,ZAXIS=0,ANGLE=0
    ASSIGN/S_ARRAY[CNT_2]=V1[V3]
    ASSIGN/CNT_2=CNT_2+1
    LOOP/END
    UNTIL/CNT_1==LEN(M_ARRAY)
    COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,
    S_ARRAY
Children
No Data