🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: chile.comp.programacion
Article #3202

Re: Pregunta PHP, arreglos con distinta llave

#3202
From: Jos� Miguel Santib��ez
Date: Wed, 27 Apr 2005 22:39
110 lines
3939 bytes
En el cap�tulo anterior (news:Xns9645B44861D24jmsnews@200.27.221.71),
"Jos� Miguel Santib��ez" <jms@nospam.nivel5.cl> dijo: 

> En el cap�tulo anterior (news:d4os0r$319$1@localhost.localdomain),
> Chano <jgarrido@dcc.uchile.NOSPAM.cl> dijo: 
> 
>>   Tengo 3 arrays, pero las llaves de cada elemento no son
>>   correlativas. O 
>> sea, por ejemplo
>> 
>> $a=array("1322" => "hola",
>>      "1578" => "chao",
>>      "656" => "bla");
>> 
>> $b=array("3234" => "holdd",
>>      "788" => "jlklkl");
>> 
>> $c=array("8788" => "algo",
>>      "89990" => "jhkjh",
>>      "7876" => "klkjk",
>>      "87678" => "ikjkj");
>> 
>>    El asunto es que necesito leer el primer elemento de cada arreglo,
>> luego el segundo de cada arreglo, etc. Todos los arreglos tienen
>> distinto largo.
>>  
>>   Como lo puedo hacer? 
>> 
>>   Me dijeron que una forma es hacerlo con punteros de php, sacar el 
>> current y luego avanzarlo con next. Hay otra manera mejor?
> 
> no... Aunque parece que no fue la mejor manera de explicartelo, el
> asunto es muy simple:
> 
> //primero se va al primer elemento de cada arreglo:
> reset($a);
> reset($b);
> reset($c);
> 
> // ahora habr�a que hacer un ciclo y controlar el fin de los
> arreglos... // Como todos tienen distintos tama�os habr�a que ver como
> se controla... podr�a ser por ejemplo:
> for ($i = 0; $i < count($a) || $i < count($b) || $i < count($c); $i++)
> { 
>   
>   if ($i < count($a)) {  
>     $llave_a = key($a);
>     // sacamos el elemento del arreglo, hay dos maneras forma 1:
>     $elemento_a = current($a);
>     // movemos el puntero interno del arreglo:
>     next($a);
>   } else {
>     $llave_a = '';
>     $elemento_a = '';
>   }
>   
>   if ($i < count($b)) {  
>     $llave_b = key($b);
>     // sacamos el elemento del arreglo, hay dos maneras forma 2:
>     $elemento_b = $b[$llave_b];
>     // movemos el puntero interno del arreglo:
>     next($b);
>   } else {
>     $llave_b = '';
>     $elemento_b = '';
>   }
>   
>   if ($i < count($c)) {  
>     $llave_c = key($c);
>     // sacamos el elemento del arreglo, hay dos maneras forma 1:
>     $elemento_c = current($c);
>     // movemos el puntero interno del arreglo:
>     next($c);
>   } else {
>     $llave_c = '';
>     $elemento_c = '';
>   }
> 
>   // ahora hago lo que se necesite con los valores...
> }

hmm... 

Otra opci�n:

$claves_a = array_keys($a);
$claves_b = array_keys($a);
$claves_c = array_keys($a);

for ($i = 0; $i < count($a) || $i < count($b) || $i < count($c); $i++) {
  // igual hay que usar los if...

  $llave_a = $claves_a[$i];
  $elemento_a = $a[$claves_a[$i]];

  $llave_b = $claves_b[$i];
  $elemento_b = $b[$claves_b[$i]];

  $llave_c = $claves_c[$i];
  $elemento_c = $c[$claves_c[$i]];


}



-- 
                           Jose M. Santiba�ez A.
                             <jms@nivel5.cl>
                           <http://caos.cl/jms>
Technical Details
Message-ID: <Xns9645BDAA565CAjmsnews@200.27.221.71>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!news.kjsl.com!news1.nivel5.cl!news.vcd.cl!not-for-mail
References: <d4os0r$319$1@localhost.localdomain> <Xns9645B44861D24jmsnews@200.27.221.71>

Show Full Headers
Complete Article Headers
X-Google-Thread: 1593cb,d75fd42cbe357c09
X-Google-Attributes: gid1593cb,public
X-Google-Language: SPANISH,ASCII
Newsgroups: chile.comp.programacion
Subject: Re: Pregunta PHP, arreglos con distinta llave
From: "Jos� Miguel Santib��ez" <jms@nospam.nivel5.cl>
References: <d4os0r$319$1@localhost.localdomain> <Xns9645B44861D24jmsnews@200.27.221.71>
Organization: Caos Consultores
Message-ID: <Xns9645BDAA565CAjmsnews@200.27.221.71>
User-Agent: Xnews/5.04.25
X-Face: +|NgjgFM{<rs%\Q|vUu16]a6,}?MJTA<!PEEI+x&Gw-Gyq+?$}fvo+.(,-r;)~Qzn)#{{nxU,OT?w^s<7m4ckCJ*L$c#I)yHL7b)GdU*#l
NNTP-Posting-Host: 105-250-90.adsl.terra.cl
Date: 27 Apr 2005 18:39:13 -0400
X-Trace: news.vcd.cl!not-for-mail 1114637953 105-250-90.adsl.terra.cl (27 Apr 2005 18:39:13 -0400)
Lines: 110
X-Authenticated-User: jms
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!news.kjsl.com!news1.nivel5.cl!news.vcd.cl!not-for-mail