Obtenga un número arbitrario de elementos aleatorios de una matriz PHP en una línea

StackOverflow https://stackoverflow.com/questions/8931223

  •  30-10-2019
  •  | 
  •  

Pregunta

Quería sacar un número arbitrario de elementos aleatorios de una matriz en PHP. Veo que el array_rand() la función extrae un número arbitrario de llaves de una matriz. Todos los ejemplos que encontré en línea mostraron luego usando una referencia clave para obtener los valores reales de la matriz, por ejemplo,

$random_elements = array();
$random_keys = array_rand($source_array);
foreach ( $random_keys as $random_key ) {
  $random_elements[] = $source_array[$random_key];
}

Eso me pareció engorroso; Estaba pensando que podría hacerlo de manera más concisa. Necesitaría una función de que los elementos aleatorios devolvieran, en lugar de claves, o una que pueda convertir las claves en elementos, para que pudiera hacer algo como esto:

$random_elements = keys_to_elements(array_rand($source_array, $number, $source_array));

Pero no encontré ninguna de esas funciones en el manual ni en Google. ¿Estoy pasando por alto lo obvio?

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top