Código de PHP - Calcular el inventario de un librero

Imágen de perfil
Val: 716
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Calcular el inventario de un librerográfica de visualizaciones


PHP

Publicado el 12 de Abril del 2020 por Kata (76 códigos)
1.047 visualizaciones desde el 12 de Abril del 2020
Un librero tiene muchos libros clasificados en 26 categorías etiquetadas como A, B, ... Z. Cada libro tiene un código c de 3, 4, 5 o más letras mayúsculas. La primera letra de un código es la letra mayúscula de la categoría de libro. En la lista de inventario del librero, cada código c es seguido por un espacio y por un entero positivo n (int n> = 0) que indica la cantidad de libros de este código en inventario.

Por ejemplo, un extracto de una de las listas de valores podría ser:
1
L = ["ABART 20", "CDXEF 50", "BKWRK 25", "BTSQZ 89", "DRTYM 60"]

Se le dará una lista de valores (por ejemplo: L) y una lista de categorías en mayúsculas, por ejemplo:
1
M = ["A", "B", "C", "W"]

y su tarea es encontrar todos los libros de L con códigos que pertenezcan a cada categoría de M y sumar su cantidad según cada categoría.

Para las listas L y M, por ejemplo, debe devolver la cadena:
1
"(A: 20) - (B: 114) - (C: 50) - (W: 0)"
donde A, B, C, W son las categorías, 20 es la suma del libro único de la categoría A, 114 la suma correspondiente a "BKWRK" y "BTSQZ", 50 corresponde a "CDXEF" y 0 a la categoría 'W' ya que no hay código que comience con W.

Si L o M están vacías, la cadena de retorno es ""

Nota: En el resultado, los códigos y sus valores están en el mismo orden que en M.

1

Publicado el 12 de Abril del 2020gráfica de visualizaciones de la versión: 1
1.048 visualizaciones desde el 12 de Abril del 2020
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function stockList($listOfArt, $listOfCat) {
    if (count($listOfArt)==0 or count($listOfCat)==0) {
        return "";
    }
    $result=array_reduce($listOfArt,
        function ($acum, $el) {
            if (array_key_exists($el[0], $acum)) {
                $acum[$el[0]]+=explode(" ", $el)[1];
            }
            return $acum;
        }, array_fill_keys($listOfCat, 0)
    );
    return join(" - ", array_map(
        function ($el) use ($result) {
            return "(".$el." : ".$result[$el].")";
        }, array_keys($result)
    ));
}



Comentarios sobre la versión: 1 (0)


No hay comentarios
 

Comentar la versión: 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s6114