Ir para conteúdo

POWERED BY:

Arquivado

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

Scientist

Struct em PHP

Recommended Posts

Boa Noite, abaixo vou explicar o problema que tenho que resolver, porém só consigo pensar na solução por Structs (mesmo do C), se tiverem outra ideia agradeço.

 

Problema:

Tenho um array unidimensional de código de pessoas, ex: array(1,2,3,4,5,6...). Cada linha desse array é o código de uma pessoa (como já havia falado), e preciso colocar em cada linha um outro array com o código dos trabalhos que ela já corrigiu. Ficaria mais ou menos assim: array(1 (1001,1002), 2 (345, 556), 3 (3234,56) ...). Ou seja a pessoa de código 1 já corrigiu os trabalhos 1001 e 1002. Como eu faço isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

array(1 => array(1001, 1002), 2 => array(345, 556), 3 => array(3234, 65) ...)

 

Você pode fazer usando objetos ou JSON também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Code simples:

$trab = array(1 => array(1001, 1002), 2 => array(345, 556), 3 => array(3234, 65));
echo $trab[2][1];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito, mais como eu disse tenho que popular isso, então tenho 2 listas unidimensionais, 1 de pessoas e outra de trabalhos, para popular uma nova lista eu faria assim:

 

 
 $nova = array();
 foreach($pessoas as $p){
   $nova[] = $p; //atribundo o codigo da pessoa a uma linha do array
   //atribuindo o codigo do trabalho em um array dentro de linha onde fica o codigo da pessoa

   $nova[][] = $trabalhos[2];
   $nova[][] = $trabalhos[3];
 }

 

Correto ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para o código que você esta usando:

foreach($pessoa as $p){
   $nova[$p] = array(); 

   $nova[$p][] = $trabalhos[2];
   $nova[$p][] = $trabalhos[3];
 }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então prog, ainda não entendi 100% como utilizar, porque assim: tenho 2 listas populas com objetos uma de pessoas e outra de trabalhos, onde eu posso fazer por exemplo: $pessoas[3]->getNome().

 

O que eu preciso é criar uma nova lista de pessoas onde em cada linha, além do objeto pessoa, eu vou ter vários objetos trabalho que estarão vinculados à essa pessoa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja experimentou transformar os objetos em array.. acho q ia facilitar sua causa. pq ficar misturando os dois da trabalho para desenrolar mesmo.

 

para você ir acompanhando o resultado usa o print_r(); para ir vendo como esta ficando

 

 

att

 

www.supertelnet.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim transformar os objetos em array ? não entendi !

 

acho aque consegui, ficou assim: cada linha é nomeada pelo código da pessoa (que é uma chave primaria)

 

$a = array();
       $a[$lista_pessoas[0]->getCod_pessoa()][] = $lista_pessoas[0];
       $a[$lista_pessoas[0]->getCod_pessoa()][] = $lista_trabalhos[0];
       $a[$lista_pessoas[0]->getCod_pessoa()][] = $lista_trabalhos[1];

Compartilhar este post


Link para o post
Compartilhar em outros sites

MAIS OI MENOS ASSIM:

  1. [*]function objectToArray ($object) {[*]		$arr = [url="http://www.php.net/array"]array[/url]();[*]		for ($i = 0; $i < [url="http://www.php.net/count"]count[/url]($object); $i++) {[*]			$arr[] = [url="http://www.php.net/get_object_vars"]get_object_vars[/url]($object[$i]);[*]		}[*]		return $arr;[*]	}

 

 

$result = objectToArray($object);

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.