Ir para conteúdo

Arquivado

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

Carcleo

indice do array não aparece

Recommended Posts

Olá pessoal.

Boa tarde.

Tenho o seguinte array:

Array
(
   [0] => Array
       (
           [id_prod] => 3
           [quan] => 1
           [id_lista] => 2
       )

   [2] => Array
       (
           [id_prod] => 6
           [quan] => 2
           [id_lista] => 2
       )

   [4] => Array
       (
           [id_prod] => 1
           [quan] => 3
           [id_lista] => 2
       )

)

Tenho um codigo para saber quais os valores que estão em [id_prod]. Porem o valor do indice 4 não esta vindo.

 

Onde será que esta o erro?

			  for( $i = 0; $i < count( $dados ); $i++ )
			{
				print "<br>".$dados[ $i ] [ 'id_prod' ]."oi";
					if( !empty( $dados[ $i ] [ 'id_prod' ] ) )
					{
					  $Query = sprintf( 'SELECT id FROM produtos WHERE id = %d', $dados[ $i ] [ 'id_prod' ] );
					  $R_Query = $MySQL->query( $Query );
					  if( mysql_num_rows( $R_Query ) > 0 )
					  {
						$MeuCarrinho->AdicionarItem( $dados[ $i ] [ 'id_prod' ], $dados[ $i ] [ 'quan' ] , $dados[ $i ] [ 'id_lista' ] );
					  }
					 }

			  }

Compartilhar este post


Link para o post
Compartilhar em outros sites

você está varrendo índices que não existem e a quantidade de posições do array (3) é inferior ao valor do maior índice (4)

com o foreach você vai ter um resultado melhor, ele vai varrer todo array

veja e adapte

<?php
$dados = Array( 0 => Array('id_prod' => 3,'quan' => 1,'id_lista' => 2),
	2 => Array('id_prod' => 6,'quan' => 2,'id_lista' => 2),
	4 => Array('id_prod' => 1,'quan' => 3,'id_lista' => 2));
foreach ($dados as $valor){
print "<br>".$valor['id_prod']."oi";
}
?>

foreach()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta certo, mas como eu faria com os indices desse array nessa parte?

 

...
if( !empty( $dados[ $i ] [ 'id_prod' ] ) )
...

Compartilhar este post


Link para o post
Compartilhar em outros sites
...

Ta certo, mas como eu faria com os indices desse array nessa parte?

 

...

if( !empty( $dados[ $i ] [ 'id_prod' ] ) )

......

 

pode simplismente

 

 

if( !empty( $valor['id_prod'] ) )

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha solução se entendi direito o que você quer.

 

<?php

$dados = array( 
	0 => array( 'id_prod' => 3, 'quan' => 1, 'id_lista' => 2),
	2 => array( 'id_prod' => null, 'quan' => 2, 'id_lista' => 2),
	4 => array( 'id_prod' => 1, 'quan' => 3, 'id_lista' => 2)
	);

array_walk( $dados, 
function( $values )
{
	if( ! empty( $values[ 'id_prod' ] ) )
	{
		echo $values[ 'id_prod' ], '<br/>';
	}
	else
	{
		echo 'Vazio <br/>';
	}
} );
/*

Saída:

3
Vazio
1

*/

?>

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.