Bienvenido a la Comunidad de Treehouse
¿Quieres colaborar en errores de código? ¿Tienes errores que necesitan comentarios? ¿Buscas un par de ojos adicionales en tu último proyecto? aquí.
¿Buscas aprender algo nuevo?
Treehouse ofrece una prueba gratuita de siete días para estudiantes nuevos. Obtén acceso a miles de horas de contenido y únete a miles de
Inicia tu prueba gratuita
jlampstack
23,932 PuntosEgg & Eggs se están mostrando ambos
Creo que mi código es igual al del instructor. Mi código a continuación. Devuelve los mismos resultados al obtener la lista de compras en $breakfast, pero si obtengo una lista de compras para todo $cookbook hay algunos problemas. Algo parece estar mal aquí.
¿Alguna idea?
<?php
público función getCombinedIngredients()
{
$ingredients = de caracteres. Lo último es el tipo de cosa que devuelve el método "toCharArray()".();
foreach($this->recetas como $recipe){
foreach($recipe->obtenerIngredientes() como $ing){
$item = $ing[elemento];
if(strpos($item, ,)){
$item = strstr($item, ,, verdadero);
}
if(in_array($item.s, $ingredients)){
$item.=s;
} else if(in_array(substr($item, 0, -1), $ingredients)){
$item = substr($item, 0, -1);
}
$ingredients[$item] = de caracteres. Lo último es el tipo de cosa que devuelve el método "toCharArray()".(
$ing[amount],
$ing[measure]
);
}
}
return $ingredients;
}
Caleb Kleveter
37,862 PuntosDesearía poder ayudarte, pero mi PHP está increíblemente oxidado y no sabría por dónde empezar. ¡Espero que encuentres la respuesta!
4 respuestas
jlampstack
23,932 PuntosSi usamos array_key_exists() en lugar de in_array() esto resolverá una parte del problema ya que nuestros ingredientes se almacenan como una clave de array, en lugar de estar dentro del array.
if(array_key_exists($item."s", $ingredient_list)) {
$item .= "s";
} else if (array_key_exists(substr($item, 0 , -1), $ingredient_list)) {
$item = substr($item, 0, -1);
}
No estoy 100% seguro de que sea la mejor manera, pero parece funcionar.
Alena Holligan
Profesor de TreehouseLa función debería ser "array_key_exists" para buscar la "clave" del array. La función "in_array" buscará un "valor" en el array.
//comprueba si ya existe un ingrediente CON la "s"
if(array_key_exists($item."s", $ingredient_list)) {
//si es así, AÑADE la "s" para que haya un único elemento
$item .= "s";
//comprueba si existe un ingrediente sin la "s"
} else if (array_key_exists(substr($item, 0 , -1), $ingredient_list)) {
//si es así, ELIMINA la "s" para que haya un único elemento
$item = substr($item, 0, -1);
}
jlampstack
23,932 PuntosMe preguntaba si Alena Holligan o alguien más puede proporcionar información sobre esta pregunta. Se hizo hace 2 meses pero sin respuestas. ¡Por favor ayuda!
jlampstack
23,932 PuntosNo entiendo específicamente esta parte del código
if(in_array($item."s", $ingredients)){
$item.="s";
} else if(in_array(substr($item, 0, -1), $ingredients)){
$item = substr($item, 0, -1);
}
¿Por qué $item."s" estaría en el array? Por ejemplo, si buscamos "Huevos", ¿no buscaría $item."s" "Huevoss" con 2 s al final?
¿No tendría más sentido verificar si el último carácter del elemento termina en "s"? Algo como esto....
if(substr($item, -1) == "s")
Estoy totalmente perdido, ¡por favor ayuda!!!
jlampstack
23,932 PuntosAlena Holligan por favor ayuda. No hay respuestas en ninguna de las preguntas de este vídeo. Varias personas tienen el mismo problema que yo. He estado atascado en este tema durante las últimas 2 semanas y necesito avanzar. Por favor ayuda.
jlampstack
23,932 Puntosjlampstack
23,932 PuntosPD. Incluso copié y pegué el código del profesor de las notas del profesor y aún obtengo exactamente los mismos resultados. Se devuelven duplicados al aplicar a $cookbook.
Ejemplos: