¿cuál sería una manera elegante de unir dos matrices, de modo que la matriz resultante tenga dos elementos del primer conjunto seguido de un único elemento del segundo conjunto, repitiendo de esta manera?Manera elegante de combinar asimétricamente 2 matrices en PHP
array 1 = A1, A2, A3, A4, A5, etc.
matriz 2 = B1, B2, B3, B4, B5, etc.
resultado = A1, A2, B1, A3, A4, B2, A5, A6, B3, etc.
Estoy tratando de hacerlo utilizando un bucle for con múltiples contadores, pero no sé si las longitudes de la matriz siempre serán tan largas o tan largas corto según sea necesario. Tengo curiosidad: ¿hay una mejor manera?
Aquí es una versión simplificada de lo que estoy haciendo actualmente:
$x = 0, $y = 0;
for($i=0; $i<$total_num_blocks; $i++) {
if ($i % 3) { // if there's a remainder, it's not an 'every 3rd' item
$result[$i] = $projects[$x++];
} else {
$result[$i] = $posts[$y++];
}
}
¿Cuál debe ser el resultado , si a) array1 tiene más O b) menos elementos que array2? –
¿Se deberían preservar las claves? –
sí, buena pregunta. no, no me importan las teclas de matriz; también si una matriz es más larga que la otra, $ result puede simplemente detenerse cuando una matriz está vacía, O contener el resto de la matriz más larga. Extrañamente, ambas opciones estarían bien para mi caso de uso particular. – wes