Ir para conteúdo

POWERED BY:

Arquivado

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

Leonardo Gazio

[Resolvido] Array de Objetos

Recommended Posts

Salve meu povo! Tô com uma dúvida aqui, talvez os colegas possam me ajudar. Seguinte;

 

Tenho um webservice que retorna um array de objetos, eu dou um print_r nesse array e tenho a seguinte estrutura;

 

Array ([0] => stdClass Object ([iD] => 196 [NOME] => teste nome linha 1 [sOBRENOME] => teste sobrenome linha 1)

[1] => stdClass Object ([iD] => 197 [NOME] => teste nome linha 2 [sOBRENOME] => teste sobrenome linha 2) )

 

Alguém sabe como eu faço pra pegar esses dados da seguinte maneira? tipo $linha["NOME"]....... $linha["SOBRENOME"]..... etc.

 

 

Desde já agradeço à galera e qualquer ajuda é bemvinda,

[]'s a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

exemplo

 

<?php

class foo
{

	function bar()
	{
		return array
				(
					1 => array( 'name'=>'name 1', 'surname'=>'surname 1' ),
					2 => array( 'name'=>'name 2', 'surname'=>'surname 2' ),
					3 => array( 'name'=>'name 3', 'surname'=>'surname 3' ),
				);
	}

}

$obj = foo::bar();
//print_r( $obj );

foreach( $obj as $k => $v )
{
	echo $v['name'];
	echo ' ';
	echo $v['surname'];
	echo PHP_EOL . '<br>';
}


?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa hinom, valeu por responder cara. Pô não tõ conseguindo encaixar o seu exemplo na minha necessidade aqui mas ficaria muito grato se você pudesse ajudar, lembrando que cada linha no meu array é um objeto do tipo stdClass, tem como você me ajudar a encaixar esse seu exemplo no na minha necessidade?

 

Valeu desde já,

[]'s.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando o retorno é um array com objetos. você deve utilizar deste modo.

 

Array ([0] => stdClass Object ([ID] => 196 [NOME] => teste nome linha 1 [SOBRENOME] => teste sobrenome linha 1) 
[1] => stdClass Object ([ID] => 197 [NOME] => teste nome linha 2 [SOBRENOME] => teste sobrenome linha 2) )

Para pegar o ID que está no índice 0 utilize:

 

$array[0]->ID;
$array[0]-> NOME;
$array[0]-> SOBRENOME;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou fazer uma sugestão, que talvez facilite a visualização do array.

echo '<pre>';
print_r($var);//aqui você coloca o array
echo '</pre>';

Ele vai exibir o array mais organizado. Facilita bastante, principalmente se for array com array.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Renato e Matias, valeu pela ajuda mas eu consegui resolver ontem mesmo. Fiz da seguinte maneira;

 

for($x=0;$x<count($array);$x++) {
	$r = get_object_vars($array[$x]);
	echo $r["NOME"]." - ".$r["SOBRENOME"]."<br>";
}

Fiz também uma paginação dele, talvez possa ajudar alguém;

 

function CriarLinks ($totalPags, $pag) {
	  if($totalPags > 1) {
		  if($pag > 1) {
			  $pAnt = $pag - 1;
			  $link .= '<a href="?pag='.$pAnt.'"><<</a> ';
		  }
		  for ($i = 1; $i <= $totalPags; $i++) {
			  $link .= ' <a href="?pag='.$i.'">'.$i.'</a>';
		  }
		  if($pag < $totalPags) {
			  $pPro = $pag + 1;
			  $link .= ' <a href="?pag='.$pPro.'">>></a>';
		  }
		  return $link;
	  } else {
		  return NULL;	  
	  }
  }

  require_once('lib/soap/nusoap.php');
  require_once('classes/publico.class.php');
  $pub = new publico;
  try {
	  $client = new soapclient("http://".$pub->wsHost.":".$pub->wsPort."/webservice/painel_controle/cadResponsavel.php?wsdl");
	  $res = $client->__call("listaResponsavel", array("", $pub->wsSnh));
  } catch (Exception $e) {
	  echo "Erro: ".$e->faultstring;
  }

  $regsPorPag = 15;

  if (!isset($_GET["pag"])) {
	  $pag = 1;
  } else {
	  $pag = $_GET["pag"];
  }

  $totalReg  = count($res);
  $totalPags = ceil($totalReg/$regsPorPag);
  $primReg   = (($pag * $regsPorPag) - $regsPorPag);

  for ($i = $primReg; $i < ($regsPorPag + $primReg); $i++) {
	  if(isset($res[$i])) {
		  $r = get_object_vars($res[$i]);
		  echo $r["NOME"]." - ".$r["SOBRENOME"]."<br>";
	  }
  }

  echo CriarLinks($totalPags, $pag);

 

 

Abraços a todos.

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.