Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Listo um array pelo foreach e preciso pegar os valores fora do foreach.
Abaixo tenho o exemplo do foreach com os valores
<?php
foreach($turma $rsturma):
if(($rsturma['id'] == 1){
echo $rsturma['nome']."<br>";
echo $rsturma['idade']."<br><br>";
}
endforeach;
//Dentro do foreach me retorna:
Luis
13
Maria
12
Carlos
12
Matheus
14
Andréa
12
//Preciso pegar a posição e o valor desta lista
$posicao1 = 1;
$nome1 = Luis;
$posicao2 = 2;
$nome2 = Maria;
$posicao3 = 3;
$nome3 = Carlos;
$posicao4 = 4;
$nome4 = Matheus;
$posicao5 = 5;
$nome5 = Andréa;>
1 hora atrás, washalbano disse:
Olá!
O ideal seria nos dizer o que precisa fazer. Talvez apareça uma orientação ideal.
Para continuar como está, primeiro é preciso descobrir qual é o conteúdo de $turma.
Se o trecho de código exibo funciona, acredito que seria +- assim:
Usando a posição você teria os nomes
<?=$turma[0]['nome']?>
<?=$turma[1]['nome']?>
<?=$turma[2]['nome']?>
Boa noite! Obrigado pelo retorno!
Vou postar a imagem da api com os dados.
No meu exemplo coloquei "ID" e na verdade a condição é pela classe do aluno, sendo os alunos que pertencem a classe 1.
Preciso usar os valores fora de um foreach pois vou colocar em lugares diferentes dentro do site. Vou precisar da posição deles pois depois vou fazer uma comparação entre a idade deles (Exe. if( [0][idade] > [3][idade] )..... )
Se eu entendi tu quer pegar o id de uma certa tbl pra outra certo??
Pode fazer assim usando extract()
Vou dar um exemplo
<?php
$query = "SELECT * FROM user";
$stmt = $conn->query($query);
while($user = $stmt->fetch(PDO::FETCH_ASSOC)){
extract($user);
}
$query = "SELECT * FROM curso WHERE iduser ={id_user} ";
$stmt = $conn->query($query);
while($curso = $stmt->fetch(PDO::FETCH_ASSOC)){
extract($curso);
}
echo $titulo_urso;
?>>
9 horas atrás, Jack Oliveira disse:
Se eu entendi tu quer pegar o id de uma certa tbl pra outra certo??
Pode fazer assim usando extract()
Vou dar um exemplo
<?php
$query = "SELECT * FROM user";
$stmt = $conn->query($query);
while($user = $stmt->fetch(PDO::FETCH_ASSOC)){
extract($user);
}
$query = "SELECT * FROM curso WHERE iduser ={id_user} ";
$stmt = $conn->query($query);
while($curso = $stmt->fetch(PDO::FETCH_ASSOC)){
extract($curso);
}
echo $titulo_urso;
?>
Bom dia, obrigado pelo retorno.
Os dados são de apenas uma api, contendo a classe, nome e idade.
Preciso listar somente as classes "1" e pegar a posição [0],[1]... e os demais itens de cada laço. Isto tem que ser fora do laço foreach pois vou usar em campos diversos dentro do site.>
2 horas atrás, Giovanird disse:
Bom dia, obrigado pelo retorno.
Os dados são de apenas uma api, contendo a classe, nome e idade.
Preciso listar somente as classes "1" e pegar a posição [0],[1]... e os demais itens de cada laço. Isto tem que ser fora do laço foreach pois vou usar em campos diversos dentro do site.
Faz uma função pegando o que precisa
<?php
function DadosSite($Tabela, $Campo, $Parametros) {
$query = "SELECT {$Campo} FROM {$Tabela} {Parametros}";
$stmt = $conn->query($query);
while($dados = $stmt->fetch(PDO::FETCH_ASSOC)){
//extract($dados);
return $dados["{$Campo}"];
}
}
//chama da seguinte forma
echo DadosSite('cursos', nome_curso, "WHERE iduser='{$id_user}'");
?>
Pode simplificar ai conforme precisar>
1 hora atrás, Jack Oliveira disse:
Faz uma função pegando o que precisa
<?php
function DadosSite($Tabela, $Campo, $Parametros) {
$query = "SELECT {$Campo} FROM {$Tabela} {Parametros}";
$stmt = $conn->query($query);
while($dados = $stmt->fetch(PDO::FETCH_ASSOC)){
//extract($dados);
return $dados["{$Campo}"];
}
}
//chama da seguinte forma
echo DadosSite('cursos', nome_curso, "WHERE iduser='{$id_user}'");
?>
Pode simplificar ai conforme precisar
Boa tarde! Muito obrigado pelo retorno.
Infelizmente não consegui fazer.
Não estou trabalhando com tabelas, MySQL. estou usando uma API via json conforme a imagem.
Vou precisar filtrar dentro do json as classes com valor "1" e depois pegar o índice de cada um fora do laço Foreach igual da imagem>
1 hora atrás, Giovanird disse:
Boa tarde! Muito obrigado pelo retorno.
Infelizmente não consegui fazer.
Não estou trabalhando com tabelas, MySQL. estou usando uma API via json conforme a imagem.
Vou precisar filtrar dentro do json as classes com valor "1" e depois pegar o índice de cada um fora do laço Foreach igual da imagem
Posta o código do json
>
1 hora atrás, Jack Oliveira disse:
Posta o código do json
<?php
$turma = file_get_contents("https://api...............");
$turma = json_decode($turma, true);
foreach($turma as $rsturma):
if($rsturma['classe'] == 1){
echo $rsturma['classe']."<br>";
echo $rsturma['nome']."<br>";
echo $rsturma['idade']."<br><br>";
}
endforeach;
// aqui fora do laço preciso pegar a idade de cada aluno da classe 1 conforme a posição [0] [1] [2] ....
echo $rsturma[0]['idade']."<br>";
echo $rsturma[1]['idade']."<br>";
echo $rsturma[2]['idade']."<br>";
echo $rsturma[3]['idade']."<br>";
echo $rsturma[4]['idade']."<br>";
?><?php
$turma=[
["classe"=>1,"nome"=>"Luis","idade"=>13],
["classe"=>2,"nome"=>"Otávio","idade"=>16],
["classe"=>1,"nome"=>"Maria","idade"=>12],
["classe"=>1,"nome"=>"Carlos","idade"=>12],
["classe"=>2,"nome"=>"Rafaela","idade"=>16],
["classe"=>1,"nome"=>"Mateus","idade"=>14],
["classe"=>1,"nome"=>"Andréa","idade"=>12],
["classe"=>2,"nome"=>"Robson","idade"=>16]];
$filtros=array_filter($turma,function($turma){return $turma["classe"]==1;});
$icontador=1;
echo "<table><tr><th>Posição<th>Nome<th>Idade"; echo "<tr><td>$icontador<td>".$filtro["nome"]."<td>".$filtro['idade'];
$icontador++;
endforeach;
Olá!
O ideal seria nos dizer o que precisa fazer. Talvez apareça uma orientação ideal.
Para continuar como está, primeiro é preciso descobrir qual é o conteúdo de $turma.
Se o trecho de código exibo funciona, acredito que seria +- assim:
Usando a posição você teria os nomes