Jump to content


Photo

Ajuda Com Auto Soma Em Array


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

#1 neoSoro

neoSoro

    Novato no fórum

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

Posted 06/07/2009, 13:29

Fala p.*,

to desenvolvendo um sitema que gera, no final, um relatório com gráfico, mas esse relatório pode ser de duas maneiras inicialmente: por frequência, onde exibe o número de vezes que determinado dado se repete, e totalizador que é o valor total de cada ocorrência dessa, por exemplo:

Cidade => valor

1=>15
1=>10
1=>5
1=>8
1=>1
2=>4
2=>2
3=>105

Frequencia:
Cidade 1 = 5
Cidade 2 = 2
Cidade 3 = 1

Totalizador:
Cidade 1 = 39
Cidade 2 = 6
Cidade 3 = 105

Bom, a frequencia funciona que é um beleza, mas o totalizador não está respondendo como eu queria: Ele traz por exemplo:
Cidade 1 = 15
Cidade 1 = 10
Cidade 1 = 5
Cidade 1 = 8
Cidade 1 = 1
Cidade 2 = 4
Cidade 2 = 2
Cidade 3 = 105

No caso ele retorna isso porque eu quero, e na verdade o problema é que ele não está somando e não sei porque vou colocar o código para vocês verem:
if($_POST['frequenciap']){
		for($i = 0; $i<count($vetor); $i++){
			switch($vetor[$i][$frequencia]){
				case $vetor[$i][$frequencia]:	
					$val[] = $vetor[$i][$frequencia];
				break;
			}
			$total++;		
		}
	}else if($_POST['totalizadorp']){
		for($i = 0; $i<count($vetor); $i++){
			switch($vetor[$i][$frequencia]){
				case $vetor[$i][$frequencia]:
					 $val[] += $vetor[$i][$parametro]; // queria que aqui ele somasse o valor e armazenasse
					 //echo $vetor[$i][$parametro]."-".$vetor[$i][$frequencia]."<BR />";
				break;
			}
		$total++;	
		}
	}

Um detalhe é que se for estático e faço tranquilo, mas queri que fosse dinâmico pra não ter que fazer mais de 100 relatórios na mão. Agradeço desde já a colaboração de vocês.
Outra coisa: já tentei "array_sum, reset, array_reduce". O array_reduce não sei, mas o array_sum ele soma tudo e não é isso que eu quero queria saber em cada vetor e não o total e o reset, obviamente não funcionou. Queria que ele me trouxesse o vlor por vetor.
[]'s Rodrigo Nascimento

Edição feita por: neoSoro, 06/07/2009, 13:34.


#2 Snippet

Snippet

    Novato no fórum

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

Posted 06/07/2009, 17:42

Fala p.*,

to desenvolvendo um sitema que gera, no final, um relatório com gráfico, mas esse relatório pode ser de duas maneiras inicialmente: por frequência, onde exibe o número de vezes que determinado dado se repete, e totalizador que é o valor total de cada ocorrência dessa, por exemplo:

Cidade => valor

1=>15
1=>10
1=>5
1=>8
1=>1
2=>4
2=>2
3=>105

Frequencia:
Cidade 1 = 5
Cidade 2 = 2
Cidade 3 = 1

Totalizador:
Cidade 1 = 39
Cidade 2 = 6
Cidade 3 = 105

Bom, a frequencia funciona que é um beleza, mas o totalizador não está respondendo como eu queria: Ele traz por exemplo:
Cidade 1 = 15
Cidade 1 = 10
Cidade 1 = 5
Cidade 1 = 8
Cidade 1 = 1
Cidade 2 = 4
Cidade 2 = 2
Cidade 3 = 105

No caso ele retorna isso porque eu quero, e na verdade o problema é que ele não está somando e não sei porque vou colocar o código para vocês verem:

if($_POST['frequenciap']){
		for($i = 0; $i<count($vetor); $i++){
			switch($vetor[$i][$frequencia]){
				case $vetor[$i][$frequencia]:	
					$val[] = $vetor[$i][$frequencia];
				break;
			}
			$total++;		
		}
	}else if($_POST['totalizadorp']){
		for($i = 0; $i<count($vetor); $i++){
			switch($vetor[$i][$frequencia]){
				case $vetor[$i][$frequencia]:
					 $val[] += $vetor[$i][$parametro]; // queria que aqui ele somasse o valor e armazenasse
					 //echo $vetor[$i][$parametro]."-".$vetor[$i][$frequencia]."<BR />";
				break;
			}
		$total++;	
		}
	}

Um detalhe é que se for estático e faço tranquilo, mas queri que fosse dinâmico pra não ter que fazer mais de 100 relatórios na mão. Agradeço desde já a colaboração de vocês.
Outra coisa: já tentei "array_sum, reset, array_reduce". O array_reduce não sei, mas o array_sum ele soma tudo e não é isso que eu quero queria saber em cada vetor e não o total e o reset, obviamente não funcionou. Queria que ele me trouxesse o vlor por vetor.
[]'s Rodrigo Nascimento


Da uma olhada neste exemplo:

Acho que pode te dar uma ajuda.
<!-- Deus não escolhe os capacitados mas capacita os escolhidos. -->

#3 neoSoro

neoSoro

    Novato no fórum

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

Posted 07/07/2009, 09:11

Cara valeu, mas é quase isso. Na verdade você criou 4 vetores e no caso é apenas 1. O que deveria ser feito é mais ou menos assim:
for($i = 0; $i<count($vetor); $i++){
		$total++;
		switch($vetor[$i][codmuni]){
			case '10':
				$var1 += $vetor[$i][numBolsaAtend];
			break;
			case '19':
				$var2 += $vetor[$i][numBolsaAtend];
			break;
			case '21':
				$var3 += $vetor[$i][numBolsaAtend];
			break;
			case '69':
				$var4 += $vetor[$i][numBolsaAtend];
			break;
		}	
	}

Vetor:
Array
(
[0] => 4
[1] => 2
[2] => 4
[3] => 1
[4] => 1
[5] => 1
[6] => 1
[7] => 3
[8] => 1
[9] => 1
[10] => 2
[11] => 1
[12] => 1
[13] => 1
[14] => 1
[15] => 1
[16] => 3
[17] => 1
[18] => 1
[19] => 3
[20] => 1
[21] => 1
[22] => 2
[23] => 4
[24] => 3
[25] => 1
[26] => 3
[27] => 2
[28] => 2
[29] => 3
[30] => 3
[31] => 3
[32] => 1
[33] => 1
[34] => 1
[35] => 2
[36] => 1
[37] => 1
[38] => 8
[39] => 2
[40] => 2
[41] => 1
[42] => 6
[43] => 2
[44] => 1
[45] => 2
[46] => 1
[47] => 4
[48] => 2
[49] => 4
[50] => 3
[51] => 4
[52] => 4
[53] => 3
[54] => 2
[55] => 5
[56] => 9
[57] => 6
[58] => 3
[59] => 3
[60] => 6
[61] => 4
[62] => 1
[63] => 1
[64] => 2
[65] => 3
[66] => 2
[67] => 1
[68] => 1
[69] => 1
[70] => 1
[71] => 1
[72] => 2
[73] => 3
[74] => 4
[75] => 5
[76] => 1
[77] => 8
[78] => 1
[79] => 3
[80] => 6
[81] => 2
[82] => 1
[83] => 1
[84] => 14
[85] => 1
[86] => 1
[87] => 0
[88] => 1
[89] => 10
[90] => 1
[91] => 2
[92] => 20
[93] => 1
[94] => 6
[95] => 10
[96] => 2
[97] => 1
[98] => 24
[99] => 6
[100] => 36
[101] => 12
[102] => 2
[103] => 5
[104] => 2
[105] => 2
[106] => 12
[107] => 1
[108] => 1
[109] => 1
[110] => 111
[111] => 1
[112] => 2
[113] => 6
[114] => 1
[115] => 3
[116] => 4
[117] => 7
[118] => 1
[119] => 4
[120] => 10
[121] => 2
[122] => 7
[123] => 3
[124] => 90
[125] => 1
[126] => 1
[127] => 3
[128] => 2
[129] => 12
[130] => 2
[131] => 4
[132] => 1
[133] => 6
[134] => 2
[135] => 1
[136] => 4
[137] => 12
[138] => 1
[139] => 2
[140] => 1
[141] => 3
[142] => 1
[143] => 4
[144] => 10
[145] => 5
[146] => 3
[147] => 13
[148] => 12
[149] => 2
[150] => 1
[151] => 3
[152] => 2
[153] => 1
[154] => 15
[155] => 4
[156] => 2
[157] => 1
[158] => 1
[159] => 4
[160] => 50
[161] => 5
[162] => 5
[163] => 1
[164] => 2
[165] => 1
[166] => 5
[167] => 24
[168] => 7
)
Daí, por exemplo, do 0 ao 25 seria um frequência, queria que uma variável recebesse a soma dessa frequência que dá 46. É isso. Obrigado.

#4 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 15385 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 25/09/2017, 15:08

Cialis For Sale Cheap Online Pharmacy Paypal online pharmacy Need Prescription Amoxicillin Propecia Apotek
Comprar Cialis Europa Effet Cialis Viagra How To Purchase Accutane cheap cialis Xenical Vrai Acheter Viagra Made In Canada Bulk Cialis From Canada




1 user(s) are reading this topic

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

IPB Skin By Virteq