Why does the assignment $eimer[$i] = $zahlen; work in a loop for storing random numbers in an array, while $eimer = $zahlen[$i]; does not work and what is the reasoning behind it?

The issue is that in the statement $eimer = $zahlen[$i];, you are assigning a single value from the $zahlen array to $eimer at each iteration, overwriting the previous value. This means that $eimer will only hold the last value from the $zahlen array. To store all random numbers in the $zahlen array into $eimer, you should use the assignment $eimer[$i] = $zahlen; within the loop to assign each random number to a different index in the $eimer array.

// Initialize arrays
$zahlen = array();
$eimer = array();

// Generate random numbers and store in $zahlen array
for ($i = 0; $i < 10; $i++) {
    $zahlen[$i] = rand(1, 100);
}

// Store random numbers from $zahlen array into $eimer array
for ($i = 0; $i < 10; $i++) {
    $eimer[$i] = $zahlen[$i];
}

// Print out the $eimer array
print_r($eimer);