J'essaie de calculer l'âge des utilisateurs, puis de regrouper ces résultats comme les suivants: Cependant, lorsque je Array vide comme ('touche' => 0) p>
blockQuote> Je ne suis pas sûr que je ne passe pas dd ($ groupebyage) code> Je suis toujours recevoir p>
$ utilisateurs code> correctement ou quel est le fichier émis. p> p>
3 Réponses :
Vous devriez essayer ceci:
Pourquoi devrais-je dire et puis quitter ()?
/**
* @return array()
*/
public function setAge($users) {
if($users) {
foreach($users as &$user) {
$now = Carbon::now();
$user->age = Carbon::createFromFormat('Y-m-d', $user->birth_date);
$user->age = $now->diffInYears($user->age);
}
}
return $users;
}
/**
* @return array()
*/
public function groupByAge($users) {
$ageGroups = ['less than 20', 'more than 20'];
$ageGroup = [];
foreach ($users as $u) {
switch($u->age) {
case ($u->age < 20) :
$ageGroup['less_then_20'] = 1;
break;
case($u->age >= 20) :
$ageGroup['more_than_20'] = 1;
break;
default:
$ageGroup['error'] = 'error';
break;
}
}
return $ageGroup;
}
public function index() {
$users = DB::table('users')->get;
$users = $this->setAge($users);
$users = $this->groupByAge($users);
print_r("<pre>");
print_r($users);
print_r("</pre>");die();
return view('/users/',['users'=> $users]);
}
Vous voyez GroupByage ($ utilisateurs) CODE> Cette méthode TRAY variable` $ GROUPS `N'utilisez pas dans la variable de table de basculement. et dans ce code trop d'erreur résolue.
Pourquoi changer +1 code> comme uniquement 1 code> dans $ eurotgroup [a_key] = code>, le résultat ne sera que 1 même s'il y a plus d'une personne Dans la catégorie d'âge concernée
Carbon fournit une méthode pour calculer directement l'âge. Ainsi, en supposant que Je ne suis pas sûr de ne pas compter les utilisateurs dans certains groupes d'âge ou si vous souhaitez les regrouper. Comme le titre indique de grouper les utilisateurs en groupes d'âge, vous pouvez procéder comme suit: p> $ naissance_date code> est déjà lancé sur une instance de carbone, il est possible d'appeler Âge code> à ce sujet.
Je pense que continuer à utiliser le carbone pour les 2 fonctions est la meilleure réponse
$ La groupeByage code> n'est pas la variable que vous souhaitez dd. à la place dd$ utilisateurs code> variableEt si
u-> âge == 20 code>?Qu'est-ce que
endforeach code> etendif code> signifie dans le contexte php? Qu'est-ce queu code>? Vous utilisezu-> naissance code> (BTW Veuillez fournir un exemple de code sans erreurs de syntaxe.Vérifiez votre fonction
La fonction code>, il renvoie$ Âge code> qui n'est jamais défini. Et queforeach code> n'est pas fermé nulle part? En outre,$ eurogroup ['inférieur à 20'] code> n'est pas le même que$ eurotgroup ['inférieur à 20'] code>.@Commonsensens
endif code> etendforeach code> sont Syntaxes alternatives . Je ne le savais pas non plus .. mais b>: code> manque pour la syntaxe