Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como retornar todos os alunos que tiveram determinada nota, e não somente um aluno?

Caso no exemplo usado no vídeo, seja uma lista com 100 alunos e eu queira saber desses 100 alunos quais são os que tiraram nota 10? Como posso fazer para retornar todos os nomes de alunos que cumpram essa exigência?

1 resposta
solução!

Oi Paulo, beleza?

Você quer filtrar os alunos com nota 10 dentro de um array e depois pegar o nome desses alunos, correto? Para filtrar elementos dentro de um array você tem a função array_filter e para transformar os valores de um array você tem o array_map.

Vou dar um exemplo de como realizar essa operação com 4 alunos, que pode servir para 100 ou mais também, basta incluir mais valores:

$alunos = [
        ['nome' => 'Carlos', 'nota' => 7,4],
        ['nome' => 'Ana', 'nota' => 10],
        ['nome' => 'Rodrigo', 'nota' => 10],
        ['nome' => 'Rebeca', 'nota' => 6.8]
    ];

    $alunosComNota10 = array_map(fn($aluno) => $aluno['nome'],
     array_filter($alunos, fn($aluno) => $aluno['nota'] === 10)
    );

A parte da filtragem acontece nessa linha array_filter($alunos, fn($aluno) => $aluno['nota'] === 10) que irá retornar um novo array com os alunos com nota 10. A parte que pega o nome desses alunos acontece nessa linha array_map(fn($aluno) => $aluno['nome'], ...

Bons estudos.