Article View: chile.comp.programacion
Article #3200Re: Pregunta PHP, arreglos con distinta llave
From: Jos� Miguel Santib��ez
Date: Wed, 27 Apr 2005 21:43
Date: Wed, 27 Apr 2005 21:43
80 lines
3309 bytes
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-mailReferences:
<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