SYNOPSIS
        mixed * transpose_array(mixed *arr)

BESCHREIBUNG
        Transponiert das Array <arr>.

        transpose_array( ({ ({1,2,3}) , ({a,b,c}) }) )
        ergibt: ({ ({1,a}), ({2,b}), ({3,c}) })

        Wird transpose_array() auf eine Alist angewendet, ergibt das ein
        Array von ({ key, data }) in Paaren. Das ist praktisch, wenn
        sort_array() oder filter() auf die Alist angewendet werden soll.

BEISPIELE
        sort_array(transpose_array( ({m_indices(map), m_values(map) }) ),
                   lambda( ({'a, 'b}),
                           ({#'<, ({ #'[, 'a, 0}),
                                  ({ #'[, 'b, 0}) }) ));
        Dieses Gebilde liefert das Mapping 'map' als Array von ({key, data })
        Paaren, sortiert nach den Keys.

SIEHE AUCH
        alists(LPC), sort_array(E)
