Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Anderson Hito

Achar menor valor de um array

Recommended Posts

Tenho uma coluna na minha tabela que se chama proposta_valorunitário.

Nesta coluna tenho valores separados por #:

 

proposta_valorunitário

12.00#67.00#42.89#21.89#10.00

54.00#67.00#11.89#21.89#65.00

38.00#89.00#75.89#21.89#37.00

 

Já estou pegando o menor valor de cada linha da coluna por exemplo:

10.00

11.89

21.89

 

Até aqui está funcionando, mas, agora preciso mostrar somente o menor valor do resultado de cima exemplo:

10.00

 

Segue código abaixo:

<?php require_once('Connections/compras_empresa.php'); ?>
<?php
mysql_select_db($database_compras_empresa, $compras_empresa);
$sql='SELECT proposta_valorunitario FROM propostas';
$res = mysql_query($sql,$compras_empresa);
while($escrever=mysql_fetch_assoc($res)){
$listaqtd=($escrever['proposta_valorunitario']);
$resultadoqtd = explode ("#", $listaqtd);
// Sort ordena o resultado
sort( $resultadoqtd );
echo "$resultadoqtd[0]<br/>";
}?>
Me ajudem por favor.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que postei errado vou arrumar minha lógica abaixo:


Tenho uma coluna na minha tabela que se chama proposta_valorunitário.


Nesta coluna tenho valores separados por #:



proposta_valorunitário


12.00#67.00#42.89#21.89#10.00


54.00#67.00#11.89#21.89#65.00


38.00#89.00#75.89#21.89#37.00



Uso um explode ("#", $listaqtd); para listar os valores e preciso que mostre o resultado desta forma:


12.00 / 54.00 / 38.00 Linha 1


67.00 / 67.00 / 89.00 Linha 2


42.89 / 11.89 / 75.89 Linha 3


10.00 / 65.00 / 37.00 Linha 4



Depois preciso que mostre o menor valor de cada linha exemplo:


12.00 Linha 1


67.00 Linha 2


11.89 Linha 3


10.00 Linha 4



Segue código abaixo:


<?php require_once('Connections/compras_empresa.php'); ?>

<?php

mysql_select_db($database_compras_empresa, $compras_empresa);

$sql='SELECT proposta_valorunitario FROM propostas';

$res = mysql_query($sql,$compras_empresa);

while($escrever=mysql_fetch_assoc($res)){

$listaqtd=($escrever['proposta_valorunitario']);

$resultadoqtd = explode ("#", $listaqtd);

// Sort ordena o resultado

sort( $resultadoqtd );

echo "$resultadoqtd[0]<br/>";

}?>



Me ajudem por favor e me desculpem por ter postado errado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A lógica está aqui:

$rows = array(
    '12.00#67.00#42.89#21.89#10.00',
    '54.00#67.00#11.89#21.89#65.00',
    '38.00#89.00#75.89#21.89#37.00'
);

for( $i = 0; $i < count( $rows ); $i++ )
{
    $prices = explode( '#', $rows[ $i ] );
    $price = min( $prices );
    $result[ sprintf( 'Line %d', $i + 1 ) ] = $price;
}

array_walk(
        $rows,
        function( $row )
        {
            static $line = 0;
            printf( '%s Line %s<br/>', str_replace( '#', ' / ', $row ), ++$line );
        }
    );
    
foreach( $result as $key => $value )
{
    printf( '%02.2f %s<br/>',$value, $key ); 
}

Agora é só adaptar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Anderson Hito,

 

Por favor, me tira uma dúvida se eu estiver errado.

O seu problema residia na lógica ou na compreensão de ocorrência e atributo no banco de dados?

 

Pois, se for na lógica é uma abordagem pra esse problema.

Se for pelo conhecimento do banco, você poderia criar uma stored procedure pra fazer isso internamente e depois devolveria o valor pra tua aplicação.

 

Pergunto isso, em um nível bem abstrato, porque já passei por uma situação semelhante onde a questão custo x benefício precisava ser pensada. Se tu precisares desse dado a todo instante, pondere o custo de processamento até você chegar a esse dado.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza isso mesmo meu cliente vai clicar em um botão para listar os menores valores de uma proposta que ele havia cadastrado.

Os valores são cadastrados no banco como o exemplo abaixo:

 

20.00#15.00# 8.00#0.50#0.50#0.50#12.00#14.00#14.00#0.50#2.20#2.00[/size]

30.00#11.00#10.00#0.40#0.50#0.50#12.00#14.00#14.00#0.50#2.20#2.00[/size]

26.00# 9.00#11.00#0.30#0.50#0.50#12.00#14.00#14.00#0.50#2.20#2.00[/size]

 

Sendo que:[/size]

O primeiro valor de cada linha é um valor de um produto.[/size]

O segundo valor de cada linha é um valor de outro produto.[/size]

O terceiro valor de cada linha é um valor de outro produto.[/size]

E assim por diante.[/size]

 

Preciso que mostre o menor valor de cada produto como no exemplo abaixo:[/size]

Campo do banco:[/size]

20.00#15.00# 8.00#0.50#0.50#0.50#12.00#10.00#14.50#0.50#2.25#2.00[/size]

30.00#11.00#10.00#0.40#0.50#0.20#11.00#14.00#15.00#0.50#2.10#1.00[/size]

26.00# 9.00#11.00#0.30#0.50#0.50#12.00#13.00#16.00#0.50#2.30#2.00[/size]

 

Resultado:

20.00# 9.00# 8.00#0.30#0.50#0.20#11.00#10.00#15.50#0.50#2.10#1.00

 

CalJr agradeço muito pela atenção e pela ajuda.

 

 

 

Alguém consegue me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.