Foros del Web » Programando para Internet » PHP »

relacionar dos arrays php

Estas en el tema de relacionar dos arrays php en el foro de PHP en Foros del Web. Hola quisiera saber como relacionar un array con otro mas o menos no se con un ciclo o algo...ya hace un tiempo hice un post ...
  #1 (permalink)  
Antiguo 15/06/2011, 12:58
 
Fecha de Ingreso: julio-2010
Mensajes: 523
Antigüedad: 14 años, 4 meses
Puntos: 4
relacionar dos arrays php

Hola quisiera saber como relacionar un array con otro mas o menos no se con un ciclo o algo...ya hace un tiempo hice un post de algo parecido y mencione el problema y me dijeron q no me respondian eso por no pertenecer a la pregunta bueno al grano..ya con eso ya supe como generar un array dependiendo la cantidad de otro array osea que si un array tenia 10 registros entonces se creaba otro array con 10 registros tambn...ahora la duda es como hacer que si por ejemplo hay 100 registros en el array...entonces porsupuesto hay otro array con 100 registros mas llamemoslo array copia....entonces en el primer array tomemos el array con la posicion numero 50...entonces del array copia...el registro con la posicion numero 50 le pertenece al primer array con la posicion 50...como hago eso? osea estoy mas o menos como relacionando dos arrays o algo asi....diganme como hacer eso? gracias
  #2 (permalink)  
Antiguo 15/06/2011, 13:16
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: relacionar dos arrays php

Cita:
...entonces en el primer array tomemos el array con la posicion numero 50...entonces del array copia...el registro con la posicion numero 50 le pertenece al primer array con la posicion 50...
voy a tratar de contestar lo que creo que entendi que quieres... si no es eso, no es 100% mio el error, te enredaste demasiado.

tienes un array1 con 100 elementos

$array=array(1,2,3,4,5...95,96,97,98,99,100);

y en otro array desde el numero 50 en adelante

$array_copia=array(50,51,52,53,54,55...,95,96,97,9 8,99,100);

si es eso podrías hacer un for algo así:

for($f=0;isset($array_copia($f+50));$f++){
$array_copia[$f]=$array_copia($f+50);
}

o sea recorres todos los elementos desde la posicion 50 guardandolos en $array_copia mientras existan.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #3 (permalink)  
Antiguo 15/06/2011, 13:18
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 5 meses
Puntos: 641
Respuesta: relacionar dos arrays php

quien sabe que quisiste decir, pero

existe algo llamado array asociativo
Código PHP:
Ver original
  1.     1 => 1copia,
  2.     2 => 2copia,
  3.     'etc' => 'etc copia'
  4. );

a lo mejor te da una idea.
  #4 (permalink)  
Antiguo 15/06/2011, 16:31
 
Fecha de Ingreso: julio-2010
Mensajes: 523
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: relacionar dos arrays php

ok bueno...primero que todo jajaja disculpen con lo enredado q stoy con el tema...y bueno lo que respondio el colega stramin no es que el 2do empieze desde el 50...si no que el array copia el registro que tenga la posicion numero 50 le pertenece al primer array con la posicion numero 50 "pero los dos array tienen 100 registros.."

y con lo que dijo el otro colega memoadian primero que todo muchas gracias me has ayudado bastante en otros post...y yo creo que es algo asi como lo que dices que es asociativo...osea explicando mejor todo..con el mismo ejemplo de los dos array...el primer array donde hay un registro en la posicion 10...entonces el 2do array "el copia"...el registro de ese array copia que posea la pocion numero 10..estara asociado a el otra registro del primer array con la posicion 10 :D....yo pienso que eso que me dices es lo que mas atina o lo que yo digo
  #5 (permalink)  
Antiguo 15/06/2011, 17:49
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 5 meses
Puntos: 641
Respuesta: relacionar dos arrays php

creo que con el código de stramin sería más facil a ver.

Código PHP:
Ver original
  1. <?php
  2. $array=array(1,2,3,4,5,95,96,97,98,99,100);
  3. //declaramos el array copia
  4. $array_copia=array();
  5. for($f=0;isset($array[$f]);$f++){
  6.     $array_copia[$f]=$array[$f];
  7. }
  8. print_r($array);
  9. ?>
  10. <hr/>
  11. <?php
  12. print_r($array_copia);
  13. ?>

con eso puedes ver que el array copia tiene los mismos valores que el original,

de esta forma en un solo paso das la cantidad de contenido a los arrays y los llenas.

GRACIAS STRAMIN
  #6 (permalink)  
Antiguo 15/06/2011, 18:03
 
Fecha de Ingreso: julio-2010
Mensajes: 523
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: relacionar dos arrays php

ok si ya eso de hacer otro array con la misma cantidad de registros que tiene otro ya lo tengo...lo que digo es como hacer algo asi como dices tu..de asociar osea que el registro de la posicion numero 5 "por ejemplo" esta asociado con un registro del array_copia con el numero de registro 5....

entonces ya al tenerlos asi como asociados cada quien con su cada cual...

lo que necesito luego de eso es que si uno de los id´s o registros que esta en el array...hace algo entonces que el registro del array_copia que esta asociado al primer array....ps que simplemente cambie...eso se hace con php verdad? como? gracias
  #7 (permalink)  
Antiguo 15/06/2011, 18:06
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 5 meses
Puntos: 641
Respuesta: relacionar dos arrays php

prueba el código que escribí en tu web o localhost, y cambiale los números del $array original y lo imprimes y me dices a ver que sale.
  #8 (permalink)  
Antiguo 15/06/2011, 18:16
 
Fecha de Ingreso: julio-2010
Mensajes: 523
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: relacionar dos arrays php

esto es lo que aparece

Código PHP:
Ver original
  1. Parse error: syntax error, unexpected T_STRING in C:\AppServ\www\****\index.php on line 414

esa linea es: la llave que esta despues de esto
Código PHP:
Ver original
  1. $array_copia[$f]=$array[$f];
  #9 (permalink)  
Antiguo 15/06/2011, 18:24
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 5 meses
Puntos: 641
Respuesta: relacionar dos arrays php

yo solo quiero que pruebes el código que te di pero solito, no agregándolo a otro, para que veas cual es la idea, el error da en la linea 414 y el código que te di solo tiene 13 lineas

y ya lo probe copiandolo de aqui y no tiene fallas.
  #10 (permalink)  
Antiguo 15/06/2011, 18:43
 
Fecha de Ingreso: julio-2010
Mensajes: 523
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: relacionar dos arrays php

colega no me funciona....
bueno de todas formas como dije anteriormente yo tengo el codigo que crea otro array con la misma cantidad de registros..

Código PHP:
Ver original
  1. $array_original = array('pedro', 'pablo', 'juan');
  2.     $array_copia = array();
  3.     for($i = 0; $i < count($array_original); $i++)
  4.     {
  5.         $array_copia[$i] = 'si';
  6.     }
  7.    
  8.     // Asi vemos el contenido del array
  9.     print_r($array_copia);
  10.     print_r($array_original);

y funciona perfectamente ya lo que me faltaria es lo ultimo que dije :D gracias
  #11 (permalink)  
Antiguo 15/06/2011, 19:02
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 5 meses
Puntos: 641
Respuesta: relacionar dos arrays php

es exactamente lo mismo, si no te funciona algo le haces al código

Código PHP:
Ver original
  1. <?php
  2.     $array_original = array('pedro', 'juan', 'pablo');
  3.     $array_copia = array();
  4.     for($f=0;isset($array_original[$f]);$f++){
  5.         $array_copia[$f]=$array_original[$f];
  6.     }
  7.    
  8.     // Asi vemos el contenido del array
  9.     print_r($array_copia);
  10. ?>
  11. <hr/>
  12. <?php  
  13.     print_r($array_original);
  14. ?>

el resultado de eso es esto:

  #12 (permalink)  
Antiguo 15/06/2011, 19:15
 
Fecha de Ingreso: julio-2010
Mensajes: 523
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: relacionar dos arrays php

si exactamente con la diferencia de el codigo que mostre es que el segundo array el contenido es de solo "si" y eso es exactamente lo q necesito ps....ahora lo que me falta es como hacer para modificar el registro del segundo array...

osea el ejemplo seria asi supongamos que juan ingreso al sistema entonces el tiene el numero de registro del array "2"....ya entonces deberia de buscar el registro con la posicion "2" del segundo array osea el array_copia y de un "si" cambiarlo a "no"..todo eso es exactamente lo que necesito. :D

se entiende mas o menos lo que escribi? gracias
  #13 (permalink)  
Antiguo 15/06/2011, 19:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: relacionar dos arrays php

Creo que es hasta más fácil trabajar con array multidimencionales.
Código PHP:
Ver original
  1. $array = array(
  2.     'foo' => array('f', 'o', 'o'),
  3.     'bar' => array('b', 'a', 'r'),
  4.     'baz' => array('b', 'a', 'z'),
  5.     ...
  6. );
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #14 (permalink)  
Antiguo 15/06/2011, 19:37
 
Fecha de Ingreso: julio-2010
Mensajes: 523
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: relacionar dos arrays php

no no puede ser mas facil porq para lo que necesito no me sirve asi :( ya que yo voy a guardar los arrays en una bd...entonces ya lo que necesitaria es solo modificar el array_copia depende de su posicion ya lo explique anteriormente osea si el registro del array_original ejemplo el registro juan que esta en la posicion 2 entonces se actualize el array_copia modificando el registro que este en la posicion numero 2 y de un Si lo cambie a un No
  #15 (permalink)  
Antiguo 15/06/2011, 19:59
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 5 meses
Puntos: 641
Respuesta: relacionar dos arrays php

creo que te estás complicando demasiado el asunto, si eso es todo lo que necesitas solo deberias tener una tabla

user conectado
juan si
pedro no

solo updates de la tabla, y ya. ¿puede ser una opción?

si te das cuenta es exactamente lo mismo

user y conectado son dos arrays relacionados en mysql
  #16 (permalink)  
Antiguo 15/06/2011, 20:06
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: relacionar dos arrays php

echo $array_uno[50];
echo $array_dos[50];


.
__________________
la la la
  #17 (permalink)  
Antiguo 15/06/2011, 20:08
 
Fecha de Ingreso: julio-2010
Mensajes: 523
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: relacionar dos arrays php

si pero entonces todo me quedaria en una sola tabla...pero en renglones diferentes de la tabal...y la idea es que este en su tabla pero que utilice un solo renglon de la tabla....pero porfavorrrrrr.....diganme como hacer eso que explique anteriormente porfavor
  #18 (permalink)  
Antiguo 15/06/2011, 20:15
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: relacionar dos arrays php

Que tabla? usas base de datos?
__________________
la la la
  #19 (permalink)  
Antiguo 15/06/2011, 20:18
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: relacionar dos arrays php

por que no pones el codigo para verlo, porque asi no se entiende nada
__________________
la la la
  #20 (permalink)  
Antiguo 15/06/2011, 20:23
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 5 meses
Puntos: 641
Respuesta: relacionar dos arrays php

se les dice comunmente filas y no están en filas diferentes es la misma fila.

según yo, creo que estás confundido y hacer lo que dices es complicarse demasiado.

replanteate la situación,

usas un sistema de usuarios, y lo unico que debes hacer es modificar cuando entre al sistema.

punto

por otro lado lo de los arrays es hacer lo mismo pero complicandose la existencia, por que seguro que se puede pero ha de ser un lio
  #21 (permalink)  
Antiguo 16/06/2011, 12:04
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: relacionar dos arrays php

he leido las explicaciones de lo que necesita eduardo160 varias veces y no logro comprender... a ver, será esto?

$array_original=array(1,2,3 ... 98,99,100);
$array_copia=array(50,51,52 ... 98,99,100,1,2,3 ... 48,89,50);

o sea que se inserte uno en otro pero con los datos corridos con en cierta posición?
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #22 (permalink)  
Antiguo 16/06/2011, 13:00
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 5 meses
Puntos: 641
Respuesta: relacionar dos arrays php

lo que necesita es un array que se la copia de otro, uno va a tener los nombres de usuarios

Código PHP:
Ver original
  1. array('pedro', 'juan', 'pablo');

el otro, valores

Código PHP:
Ver original
  1. array('si','si','si');

el necesita que estén relacionados.

cuando un user entre al sistema; ejemplo: juan, el array copia debe modificarse a esto:

Código PHP:
Ver original
  1. array('si','no','si');

o sea lo mismo que una BD pero más complicado.
  #23 (permalink)  
Antiguo 16/06/2011, 13:06
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: relacionar dos arrays php

Sigo insistiendo que la mejor forma es un array multidimencional. Pero como se empeña en hacerlo de otra forma, lo mejor entonces que lo haga y que nos enseñe como lo logró. Mientras se puede lograr lo que desee con array multidimensionales.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #24 (permalink)  
Antiguo 16/06/2011, 13:15
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: relacionar dos arrays php

ah ya entiendo... y para que?

bueno el debe saber, en ese caso definitivamente la mejor idea es la de abimaelrc, trabajar con un arreglo tridimensional en este caso, sin embargo el dijo que no le sirve, entonces que tal aglo así?:

$arreglo_original=array('gatorV','abimaelrc','xime nitaaa','truman_truman','pateketrueke');

$arreglo_copia=array(0,0,0,0,0);

ahora veamos, el nombre mas largo...

$arreglo_copia[array_search($arreglo_original,'truman_truman')]=1;

dejaría el segundo arreglo así: $arreglo_copia=array(0,0,0,1,0);


ahora veamos, la mujer de nombre mas corto y nombre mas largo simultaneamente...

$arreglo_copia[array_search($arreglo_original,'ximenita')]="XD";

dejaría el segundo arreglo así: $arreglo_copia=array(0,0,"XD",1,0);


por si no se entiende, cambia el valor de la posicion del segundo arreglo en la misma posicion donde fue encontrado el valor en el primer arreglo :)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #25 (permalink)  
Antiguo 16/06/2011, 13:57
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 5 meses
Puntos: 641
Respuesta: relacionar dos arrays php

muy buena esa, yo creo que aplica muy bien a lo que el quiere. :)

Etiquetas: arrays, relacionar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:12.