Jump to content


Heero Maxwell

Member Since 11/02/2004
Offline Last Active 12/09/2010, 17:44
-----

Topics I've Started

[Resolvido] Array Bi-Dimensional

07/06/2010, 12:43

Pessoal, estou tendo uma certa dúvida e não consigo resolver ela.

$bancoDeDados = array("Red", "Blue", "Green", "Yellow", "Brown");

$valoreGravados = array("Red" => array(
                     "color" => "Red",
                     "qtd" => "2"),
                  "Blue" => array(
                     "qtd" => "Blue"),
                  "Green" => array(
                     "qtd" => "3")
                   );

 function in_multi_array($needle, $haystack)
 {
  foreach($haystack as $pos => $val)
  {
   if (is_array($val))
   {
    if (in_multi_array($needle, $val))
     return 1;
   } else
    if ($val == $needle)
     return 1;
  }
 }
  foreach ($bancoDeDados as $teste) {
 if (in_multi_array($teste, $valoreGravados))
  echo "". $valoreGravados[$teste]['qtd'] ."<br>";
 else
  echo "FALSE <br>\n";

}

O que eu preciso:
No meu sistema, eu terei alguns campos do tipo checkbox, para marcar por exemplo os produtos, porém junto dos produtos, eu preciso colocar a quantidade de cada produto. Desta forma, eu terei um campo de input do tipo text para escrever a quantidade e terei o checkbox para marcar se o produto foi vendido ou não.

Bom, somente com os checkbox é tranquilo, basta fazer produto[] como nome e posso unir todos os valores e criar um array comum, porém o que eu preciso é que os que foram selecionados possam ser mostrados como checked caso precise alterar algo depois. Eu queria fazer um array bi-dimensional da seguinte forma:
Nome do produto -> categoria -> quantidade
Por exemplo: O item é o carro Gol, o qual será o nome de um array, e dentro do array gol, terei a categoria que ele se encontra por exemplo vermelho e a quantidade, 2.
Fazer este array manualmente é sem problemas, porém eu não estou conseguindo fazer de forma dinâmica puxando os valores do banco de dados, pois tenho tudo cadastrado, seria apenas mostrar para o usuário selecionar.

Basicamente, como criar este array direto do banco de dados?

$valoreGravados = array("Red" => array(
                     "color" => "Red",
                     "qtd" => "2"),
                  "Blue" => array(
                     "color" => "Blue",
                     "qtd" => "1"),
                  "Green" => array(
                     "color" => "Green",
                     "qtd" => "3")
                   );

Localizei o seguinte código na internet porém não consegui adaptar o mesmo para o que eu preciso:
$sql = mysql_query("SELECT id, nome FROM cliente");

while( $rs = mysql_fetch_assoc($sql) )
{
        $sql2 = mysql_query("SELECT id_compra, id_cliente, compra FROM compras WHERE id_cliente=" . $rs['id']);
        
        $compras = array();
                                
        while( $rs2 = mysql_fetch_assoc($sql2) )
        {
                $compras[] = $rs2;
        }                                       

        $rs['compras'] = $compras;

        $result[] = $rs;
}

print_r($result);


Grato, tenho uma certa urgência, procurei muito sobre criar arrays mas não achei nada como sendo com mais de 1 valor ou array dentro de array, apenas este acima.

Dúvida Neste Script

10/06/2009, 14:09

function primos($x) {
	(int)$flag = 0;
	for((int)$i = 2; $i < $x; $i++) {
		$resultado = $x % $i;

		if($resultado == 0) {
			$a = 'Este número não é primo';
			$flag = 1;
		}
	}

	if($flag == 0) {
		$a = 'Este número é primo';
	}
	return $a;
}


echo primos(2);

Gostaria de saber uma explicação nas seguintes linhas:

$resultado = $x % $i;
e
(int)$flag = 0;

No caso, quero passar isto para uma função no VBA, e achei ela bem limpa e simples, no VBA fiz uma mais "maior", mas queria entender certinho a lógica desta no PHP.

IPB Skin By Virteq