🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: chile.comp.programacion
Article #3200

Re: Pregunta PHP, arreglos con distinta llave

#3200
From: Jos� Miguel Santib��ez
Date: Wed, 27 Apr 2005 21:43
80 lines
3309 bytes
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...
}
-- 
                           Jose M. Santiba�ez A.
                             <jms@nivel5.cl>
                           <http://caos.cl/jms>
Technical Details
Message-ID: <Xns9645B44861D24jmsnews@200.27.221.71>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news2.google.com!newsread.com!news-xfer.newsread.com!nntp.abs.net!newsfeed2.telusplanet.net!newsfeed.telus.net!cyclone.bc.net!nntp-server.pubsub.com!news1.nivel5.cl!news.vcd.cl!not-for-mail
References: <d4os0r$319$1@localhost.localdomain>

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>
Organization: Caos Consultores
Message-ID: <Xns9645B44861D24jmsnews@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 17:43:53 -0400
X-Trace: news.vcd.cl!not-for-mail 1114634633 105-250-90.adsl.terra.cl (27 Apr 2005 17:43:53 -0400)
Lines: 80
X-Authenticated-User: jms
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news2.google.com!newsread.com!news-xfer.newsread.com!nntp.abs.net!newsfeed2.telusplanet.net!newsfeed.telus.net!cyclone.bc.net!nntp-server.pubsub.com!news1.nivel5.cl!news.vcd.cl!not-for-mail