Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Oi tudo bem, estou com um problema, necessito enviar para a base dados uma quantidade enorme de registos, onde cada registo muda consoante a sua localização, especialidade, e linguas.
Mas por alguma razão só o primeiro foreach loop faz a iteração por cada valor do array, enquando o resto vai logo para o ultimo index não percorrendo o resto da lista, alguem sabe-me dizer o que está mal?
Abaixo deixo o codigo para melhro entenderem o que pretendo.
//Locais de países
$locations_uk = array("titles"...);
$locations_pt = array("titles"...);
$locations_it = array("titles"...);
$locations_es = array("titles"...);
//Listas de especialidades de trabalho em diferentes linguas
$specs_uk = array("titles"...);
$specs_pt = array("titles"...);
$specs_it = array("titles"...);
$specs_es = array("titles"...);
foreach ($locations_uk as $uk) {
foreach ($specs_uk as $spec_uk) {
$title_uk = "Trabalho em ".$locations_uk." na especialidade de ".$spec_uk." ";
}
foreach ($locations_pt as $pt) {
foreach ($specs_pt as $spec_pt) {
$title_pt = "Trabalho em ".$locations_uk." na especialidade de ".$spec_pt." entrevista em ".$pt.".";
}
}
foreach ($locations_it as $it) {
foreach ($specs_it as $spec_it) {
$title_it = "Trabalho em ".$locations_uk." na especialidade de ".$spec_it." entrevista em ".$it.".";
}
}
foreach ($locations_es as $es) {
foreach ($specs_es as $spec_es) {
$title_es = "Trabalho em ".$locations_uk." na especialidade de ".$spec_es." entrevista em ".$es.".";
}
}
}não estou entendno, mas já não estou usando array nas minhas listas? Pode dar um exemplo a partir do codigo que postei acima?
Dentro do foreach não tem array, é só uma string.
Por exemplo aqui:
foreach ($specs_uk as $spec_uk) {
$title_uk = "Trabalho em ".$locations_uk." na especialidade de ".$spec_uk." ";
}
Fora do loop, $title_uk terá sempre o último valor gerado pelo loop. Se quiser todos eles, deve usar array aí também, desta forma:
$title_uk = array();
foreach ($specs_uk as $spec_uk) {
$title_uk[] = "Trabalho em ".$locations_uk." na especialidade de ".$spec_uk." ";
}so aparece listas de
Array
Array
Array
Array
e mesmo assim nao esta puxando o resto dos valores porque o nr de arrays listados é o mesmo que tinha, deve ter indo buscar o ultimo valor do segundo foreach
Se você der um echo em $title_uk, vai mostrar "Array" mesmo.
Use print_r para mostrar todos os índices do array
Ou apenas dê um echo na string dentro do loop, sem atribuir a variável alguma:
foreach ($specs_uk as $spec_uk) {
echo "Trabalho em ".$locations_uk." na especialidade de ".$spec_uk." ";
}
Todos os foreach's estão sobrescrevendo o valor da variável. Ou seja, só o último valor de cada loop é armazenado
Se quiser todos os valores, use arrays:
{No final, $arr terá todos os valores gerados pelo loop