Jump to content


Photo

Array Com índice Duplo


  • Faça o login para participar
5 replies to this topic

#1 gonacts

gonacts

    "Agora eu tb tenho um Tux..." =D

  • Usuários
  • 1030 posts
  • Sexo:Não informado

Posted 07/06/2005, 16:18

Pessoal,é o seguinte:
Vamos supor q eu tenha o seguinte array:
Estrutura: $vetor[Processador][Tarefa];

Processador1:
$vetor[1][1] =6;  //PROCESSADOR 1 REALIZA A TAREFA 1 EM 6 SEGUNDOS.
$vetor[1][2] =7;  //PROCESSADOR 1 REALIZA A TAREFA 2 EM 7 SEGUNDOS.
$vetor[1][3] =1;  //PROCESSADOR 1 REALIZA A TAREFA 3 EM 1 SEGUNDO.
$vetor[1][4] =9;  //PROCESSADOR 1 REALIZA A TAREFA 4 EM 9 SEGUNDOS.


Processador2:
$vetor[2][1] =7;  //PROCESSADOR 2 REALIZA A TAREFA 1 EM 7 SEGUNDOS.
$vetor[2][2] =4;  //PROCESSADOR 2 REALIZA A TAREFA 2 EM 4 SEGUNDOS.
$vetor[2][3] =6;  //PROCESSADOR 2 REALIZA A TAREFA 3 EM 6 SEGUNDO.
$vetor[2][4] =2;  //PROCESSADOR 2 REALIZA A TAREFA 4 EM 2 SEGUNDOS.
OBS:Tenho mais de 2 processadores, utilizei 2 para exemplo.
Utilizando das funções predefinidas no php como, sort, ksort ,etc...como q eu faço para poder ordenar da seguinte manera:
Eu tenho q pegar qual é o processador q realiza cada uma das tarefas em menos tempo!!
No meu exemplo eu tenho 4 tarefas e 2 processadores..
1)qual processador realiza a a tarefa 1 em menor tempo? Resp: Proc1(6s)
2)qual processador realiza a a tarefa 2 em menor tempo? Resp: Proc2(4s)
3)qual processador realiza a a tarefa 3 em menor tempo? Resp: Proc1(1s)
4)qual processador realiza a a tarefa 4 em menor tempo? Resp: Proc2(2s)

acho q ficou bemexplicado neh?!Alguém pode me ajudar??
"Ninguém é tão inteligente que não possa aprender e ninguém é tão burro que não possa ensinar.."
"As dúvidas engrandecem nossa sabedoria, mas não basta somente tirá-las, temos que entendê-las"

#2 lugs

lugs

    Normal

  • Usuários
  • 83 posts
  • Sexo:Não informado
  • Localidade:Capinas - SP

Posted 07/06/2005, 22:28

Bom, qndo a gente não sabe fazer do jeito bonitinho, usamos o plano B né:

Exemplo que vai listar todas as tarefas dessa matriz (todos os processadores com o msm número de tarefas)
foreach ($vetor[1] as $tarefa=>$tempo) {
   $temp = $tempo;
   while ($cada_processador = each ($vetor)) {
       if ($cada_processador[$tarefa] < $tempo) {
           $temp = $cada_processador[$tarefa];
           $processo[$tarefa] = $cada_processador;
       }
   }
}

Acho q tá certo, se tiver, o vetor processo vai armazenar nas posições o número da tarefa, e o valor dele será o número do processador mais rápido nesta tarefa

flwz
"Qndo eu apontar para a Lua, não olhe para o meu dedo"

#3 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 08/06/2005, 05:25

Veja assim:

<?

$vetor[1][1] =6;  //PROCESSADOR 1 REALIZA A TAREFA 1 EM 6 SEGUNDOS.
$vetor[1][2] =7;  //PROCESSADOR 1 REALIZA A TAREFA 2 EM 7 SEGUNDOS.
$vetor[1][3] =1;  //PROCESSADOR 1 REALIZA A TAREFA 3 EM 1 SEGUNDO.
$vetor[1][4] =11;  //PROCESSADOR 1 REALIZA A TAREFA 4 EM 9 SEGUNDOS.

$vetor[2][1] =7;  //PROCESSADOR 2 REALIZA A TAREFA 1 EM 7 SEGUNDOS.
$vetor[2][2] =4;  //PROCESSADOR 2 REALIZA A TAREFA 2 EM 4 SEGUNDOS.
$vetor[2][3] =6;  //PROCESSADOR 2 REALIZA A TAREFA 3 EM 6 SEGUNDO.
$vetor[2][4] =2;  //PROCESSADOR 2 REALIZA A TAREFA 4 EM 2 SEGUNDOS.

foreach ($vetor as $array) {

    sort($array);
    $Menor[] = $array[0];
    
}

echo "<pre>";
print_r($Menor);

?>

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#4 gonacts

gonacts

    "Agora eu tb tenho um Tux..." =D

  • Usuários
  • 1030 posts
  • Sexo:Não informado

Posted 08/06/2005, 11:15

Veja assim:

<?

$vetor[1][1] =6;  //PROCESSADOR 1 REALIZA A TAREFA 1 EM 6 SEGUNDOS.
$vetor[1][2] =7;  //PROCESSADOR 1 REALIZA A TAREFA 2 EM 7 SEGUNDOS.
$vetor[1][3] =1;  //PROCESSADOR 1 REALIZA A TAREFA 3 EM 1 SEGUNDO.
$vetor[1][4] =11;  //PROCESSADOR 1 REALIZA A TAREFA 4 EM 9 SEGUNDOS.

$vetor[2][1] =7;  //PROCESSADOR 2 REALIZA A TAREFA 1 EM 7 SEGUNDOS.
$vetor[2][2] =4;  //PROCESSADOR 2 REALIZA A TAREFA 2 EM 4 SEGUNDOS.
$vetor[2][3] =6;  //PROCESSADOR 2 REALIZA A TAREFA 3 EM 6 SEGUNDO.
$vetor[2][4] =2;  //PROCESSADOR 2 REALIZA A TAREFA 4 EM 2 SEGUNDOS.

foreach ($vetor as $array) {

    sort($array);
    $Menor[] = $array[0];
    
}

echo "<pre>";
print_r($Menor);

?>

fala Justice...ele ta pegando o menor valor de cada grupo de processadores, eu preciso q ele analise por tarefas...qual processador faz cada tarefa mais rapida...
ele tem q comparar processador1 tarefa 1, processador2 tarefa1--processador1 tarefa 2, processador2 tarefa2 ...tendeu?!

so q eu preciso q no array grave tambem qual foi o processador...porque nao pode repetir processador seguidamente...tipo

O processador 1 faz a tarefa 1 mais rapido, e tambem o processador 1 realiza a tarefa 2 mais rapida, MAS como na tarefa anterior foi utilizado o processador 1 na tarefa seguinte, no caso a tarefa 2, nao pode ser o processador 1 novamente tem q ser o proximo menor....
entendeu?!

Edição feita por: gonacts, 08/06/2005, 11:21.

"Ninguém é tão inteligente que não possa aprender e ninguém é tão burro que não possa ensinar.."
"As dúvidas engrandecem nossa sabedoria, mas não basta somente tirá-las, temos que entendê-las"

#5 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 08/06/2005, 17:51

<?

$vetor[1][1] =6;  //PROCESSADOR 1 REALIZA A TAREFA 1 EM 6 SEGUNDOS.
$vetor[1][2] =7;  //PROCESSADOR 1 REALIZA A TAREFA 2 EM 7 SEGUNDOS.
$vetor[1][3] =1;  //PROCESSADOR 1 REALIZA A TAREFA 3 EM 1 SEGUNDO.
$vetor[1][4] =11;  //PROCESSADOR 1 REALIZA A TAREFA 4 EM 9 SEGUNDOS.

$vetor[4][1] =7;  //PROCESSADOR 2 REALIZA A TAREFA 1 EM 7 SEGUNDOS.
$vetor[4][2] =4;  //PROCESSADOR 2 REALIZA A TAREFA 2 EM 4 SEGUNDOS.
$vetor[4][3] =6;  //PROCESSADOR 2 REALIZA A TAREFA 3 EM 6 SEGUNDO.
$vetor[4][4] =2;  //PROCESSADOR 2 REALIZA A TAREFA 4 EM 2 SEGUNDOS.

$vetor[3][1] =13;  //PROCESSADOR 2 REALIZA A TAREFA 1 EM 7 SEGUNDOS.
$vetor[3][2] =12;  //PROCESSADOR 2 REALIZA A TAREFA 2 EM 4 SEGUNDOS.
$vetor[3][3] =20;  //PROCESSADOR 2 REALIZA A TAREFA 3 EM 6 SEGUNDO.
$vetor[3][4] =11;  //PROCESSADOR 2 REALIZA A TAREFA 4 EM 2 SEGUNDOS.

foreach ($vetor as $chave => $array)
{
    asort($array);
    $aChaves = array_keys($array);
    $Info[$chave][$aChaves[0]] = $array[$aChaves[0]];
}
asort($Info);

echo "<pre>";
print_r($Info);
?>

=)
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#6 lugs

lugs

    Normal

  • Usuários
  • 83 posts
  • Sexo:Não informado
  • Localidade:Capinas - SP

Posted 08/06/2005, 20:34

tentem esse, tá em outro post, eu fiz, tá a funcionando fmz:

http://forum.wmonlin...=0
"Qndo eu apontar para a Lua, não olhe para o meu dedo"




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq