Sklearn train_test_split gives incorrect array outputs.

### Describe the bug

I suspect this is because I give the function more than one array to split, but according to the documentation train_test_split should be able to take any number of arrays?

Code to reproduce:
```
test_numerical = np.random.rand(2509, 9)
test_categorical = np.random.rand(2509, 21)
test_targets = np.random.rand(2509, 2)

tr_num, tr_cat, tr_targ, vl_num, vl_cat, vl_targ = train_test_split(test_numerical, test_categorical, test_targets, test_size=0.3)

print(tr_num.shape, tr_cat.shape, tr_targ.shape)
print(vl_num.shape, vl_cat.shape, vl_targ.shape)
```
output is:
```
(1756, 9) (753, 9) (1756, 21)
(753, 21) (1756, 2) (753, 2)
```


My dataset is split into three arrays. I expect train_test_split to split the dataset along the first axis with 2509 elements. Outputs are garbled and are inconsistent in both their first and second axis. 

I would expect the output to be f.ex (1756,9), (1756,21), (1756,2), and 753,... for the validation.



### Steps/Code to Reproduce

test_numerical = np.random.rand(2509, 9)
test_categorical = np.random.rand(2509, 21)
test_targets = np.random.rand(2509, 2)

tr_num, tr_cat, tr_targ, vl_num, vl_cat, vl_targ = train_test_split(test_numerical, test_categorical, test_targets, test_size=0.3)

print(tr_num.shape, tr_cat.shape, tr_targ.shape)
print(vl_num.shape, vl_cat.shape, vl_targ.shape)

### Expected Results

I expected the output to look like:
```
(1756, 9) (1756, 21) (1756, 2)
(753, 9) (753, 21) (753, 2)
```

### Actual Results

(752, 9) (1757, 9) (752, 21)
(1757, 21) (752, 2) (1757, 2)

### Versions

```shell
System:
    python: 3.12.3 (main, Jul 31 2024, 17:43:48) [GCC 13.2.0]
executable: /home/anders/std_env/bin/python3.12
   machine: Linux-6.8.0-44-generic-x86_64-with-glibc2.39

Python dependencies:
      sklearn: 1.5.1
          pip: 24.2
   setuptools: 74.0.0
        numpy: 1.26.4
        scipy: 1.14.0
       Cython: None
       pandas: 2.2.2
   matplotlib: 3.9.1
       joblib: 1.4.2
threadpoolctl: 3.5.0

Built with OpenMP: True

threadpoolctl info:
       user_api: blas
   internal_api: openblas
    num_threads: 20
         prefix: libopenblas
       filepath: /home/anders/std_env/lib/python3.12/site-packages/numpy.libs/libopenblas64_p-r0-0cf96a72.3.23.dev.so
        version: 0.3.23.dev
threading_layer: pthreads
   architecture: Prescott

       user_api: openmp
   internal_api: openmp
    num_threads: 14
         prefix: libgomp
       filepath: /home/anders/std_env/lib/python3.12/site-packages/torch/lib/libgomp-a34b3233.so.1
        version: None

       user_api: blas
   internal_api: openblas
    num_threads: 20
         prefix: libscipy_openblas
       filepath: /home/anders/std_env/lib/python3.12/site-packages/scipy.libs/libscipy_openblas-c128ec02.so
        version: 0.3.27.dev
threading_layer: pthreads
   architecture: Haswell

       user_api: openmp
   internal_api: openmp
    num_threads: 20
         prefix: libgomp
       filepath: /home/anders/std_env/lib/python3.12/site-packages/scikit_learn.libs/libgomp-a34b3233.so.1.0.0
        version: None
```

COMMENT:
You assign variables in the wrong order.
In your code `train_test_split` would return
`tr_num, vl_num, tr_cat, vl_cat, tr_targ, vl_targ` in this order

Labels: Bug, Needs Triage