Jump to content

Recommended Posts

Posted

Pessoal, como eu conseguiria ordenar o array abaixo usando foreach?

$totalHorasTrabalhadas["João"]=10;
$totalHorasTrabalhadas["Tamar"]=15;
$totalHorasTrabalhadas["Antônio"]=10;
$totalHorasTrabalhadas["Tadeu"]=15;

A idéia é a seguinte:

$totalHorasTrabalhadas["Antônio"]=10;
$totalHorasTrabalhadas["João"]=10;
$totalHorasTrabalhadas["Tadeu"]=15;
$totalHorasTrabalhadas["Tamar"]=15;

Como ficaria?

Foreach não tem como pegar próximo índice.

For os índices são textos.

Não sei o que fazer!

Posted (edited)

Por ser uma questão da Faculdade precisa ser estruturado entende?

Eles não aceita o uso de funções nativas.

É assim:

Escreva uma função PHP chamada ordenaPorHorasTrabalhadas que recebe um array descrevendo pares [nomeDoOperario] => totalHorasTrabalhadas.

Sua função deve ordenar o array por ordem crescente do número de horas trabalhadas pelos operários.

A ídeia é essa:

<?php
$paresSapatosProduzidos = array();

$totalHorasTrabalhadas["João"]=10;
$totalHorasTrabalhadas["Tamar"]=15;
$totalHorasTrabalhadas["Antônio"]=10;
$totalHorasTrabalhadas["Tadeu"]=15;

function ordenaPorHorasTrabalhadas(&$array)
{
  $aux =0;

  foreach ($array as $operario=>$valor)
  {
 //print $valor."<br>";
  }

ordenaPorHorasTrabalhadas($totalHorasTrabalhadas);
?>
Edited by carcleo
Posted (edited)

"Escreva uma função PHP chamada ordenaPorHorasTrabalhadas"

E não

"Use a função asort() para...."

Será que eu poderia usar a função asort dentro da funçao ordena.....?

tipo assim:

<?php
 ini_set('display_errors',1);
 ini_set('display_startup_erros',1);
 error_reporting(E_ALL);

$totalHorasTrabalhadas= array();

$totalHorasTrabalhadas["João"]=10;
$totalHorasTrabalhadas["Tamar"]=15;
$totalHorasTrabalhadas["Antônio"]=10;
$totalHorasTrabalhadas["Tadeu"]=15;

function ordenaPorHorasTrabalhadas(&$array)
{
  asort($array);
}

print "<pre>";
print_r(ordenaPorHorasTrabalhadas($totalHorasTrabalhadas));
print "</pre>";
?>

Mas não imprimiu nada

Edited by carcleo
Posted

se é um exercício específico sobre algum tipo de matéria relevante a algoritmos de ordenação é uma coisa, e então não poderás usar o asort, se não é, porque inventar a roda ?

caso for o primeiro cenário, então ordenação deterás de estudar os algoritmos de ordenação, pelo menos 2 ou 3 ...

IRC : sim, é algo que ainda existe >> #p@p
Posted

"Escreva uma função PHP chamada ordenaPorHorasTrabalhadas"

E não

"Use a função asort() para...."

Será que eu poderia usar a função asort dentro da funçao ordena.....?

tipo assim:

<?php
 ini_set('display_errors',1);
 ini_set('display_startup_erros',1);
 error_reporting(E_ALL);

$totalHorasTrabalhadas= array();

$totalHorasTrabalhadas["João"]=10;
$totalHorasTrabalhadas["Tamar"]=15;
$totalHorasTrabalhadas["Antônio"]=10;
$totalHorasTrabalhadas["Tadeu"]=15;

function ordenaPorHorasTrabalhadas(&$array)
{
  asort($array);
}

print "<pre>";
print_r(ordenaPorHorasTrabalhadas($totalHorasTrabalhadas));
print "</pre>";
?>

Mas não imprimiu nada

Bem isso não mostrou nada, porque não estás a retornar nenhum valor da função.

Mas agora o resto depende de ti e das restrições do teu exercício, se vais reinventar a roda ou se vais user o asort.

Contador de calorias: caloriaspordia.com

Posted

Muito Obrigado novamente.

Vou me certificar com o professor se quer algorítimo de ordenação ou se pode ser assim também.

Se for por ordenação, volto á dificuldade inicial:

Foreach não tem como pegar próximo índice pois os índices são texto e não números.

For os índices são textos.

Novamente muito Obrigado!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.