Scientist 2 Denunciar post Postado Maio 28, 2012 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
Prog 183 Denunciar post Postado Maio 28, 2012 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
Scientist 2 Denunciar post Postado Maio 28, 2012 Como eu recuperaria por exemplo o segundo trabalho da segunda pessoa ? Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Maio 28, 2012 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
Scientist 2 Denunciar post Postado Maio 28, 2012 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
Prog 183 Denunciar post Postado Maio 28, 2012 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
Scientist 2 Denunciar post Postado Maio 28, 2012 Mesmo se a variavel $p for um OBJETO não há problemas? Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Maio 28, 2012 Se $p for um objeto você precisa chamar o método adequado. Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Maio 28, 2012 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
Tellys Castro 12 Denunciar post Postado Maio 28, 2012 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
Scientist 2 Denunciar post Postado Maio 28, 2012 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
Tellys Castro 12 Denunciar post Postado Maio 28, 2012 MAIS OI MENOS ASSIM: [*]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
Scientist 2 Denunciar post Postado Maio 28, 2012 entendi mais acho que não é o meu caso supertelnet. Compartilhar este post Link para o post Compartilhar em outros sites