Foros del Web » Programando para Internet » PHP »

ayuda con arrays

Estas en el tema de ayuda con arrays en el foro de PHP en Foros del Web. Buenas, necesito la ayuda de algun profesional :D A ver, resulta q necesito fusionar 2 array, pero con array_merge me da problemas con las llaves ...
  #1 (permalink)  
Antiguo 16/06/2005, 15:01
 
Fecha de Ingreso: diciembre-2003
Mensajes: 218
Antigüedad: 20 años, 4 meses
Puntos: 0
ayuda con arrays

Buenas, necesito la ayuda de algun profesional :D

A ver, resulta q necesito fusionar 2 array, pero con array_merge me da problemas con las llaves iguales.

Osea quiero (si se puede)
Código PHP:
$a = array ('uno' => 'PEPE''dos' => 'PEPA');

$b= array ('uno' => 'JUAN''dos' => 'JUANA');

//Y obtener

$ab = array ('uno'=>PEPE'dos' => 'PEPA''uno' => 'JUAN''dos' => 'JUANA'); 
Creeis q es posible?
__________________
SymbianForever
SymbianForever.com, todo sobre y para tu symbian
aNieto2K | Themes para WordPress
De todo un poco
  #2 (permalink)  
Antiguo 16/06/2005, 16:01
Avatar de crazyandmaniac  
Fecha de Ingreso: mayo-2005
Mensajes: 99
Antigüedad: 18 años, 10 meses
Puntos: 0
probaste array_merge_recursive???
o que problemas te da el array_merge?
__________________


------------------------------------------
:pensando:
[email protected]

------------------------------------------


  #3 (permalink)  
Antiguo 16/06/2005, 18:43
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años
Puntos: 2
Hola

Por el momento no recuerdo bien, pero lo resolvi usando array_push me parece, de esa forma la arreglo que ya tienes le pegas un nuevo elemento, lo que puedes hacer es una funcion donde recorre el arreglo que quieres pegar e ir haciendo un push sobre el arreglo principal.

Espero que te sirva, si encuentro el codigo que tengo para eso, te lo paso, pero mientras puedes investigas como funciona eso.

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #4 (permalink)  
Antiguo 17/06/2005, 01:00
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
No es conveniente tener lo que mencionas:
Código PHP:
$ab = array ('uno'=>PEPE'dos' => 'PEPA''uno' => 'JUAN''dos' => 'JUANA'); 
osease, índices (keys) repetidos... ¿cómo accedes a los valores entonces???...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 17/06/2005, 02:06
 
Fecha de Ingreso: diciembre-2003
Mensajes: 218
Antigüedad: 20 años, 4 meses
Puntos: 0
Ya lo se, se q no es bueno ni recomendable, pero es q necesito hacerlo asi, ya q luego muestro recorriendo todo el array.

Os explico, estoy desarrollando un motor de templates y tengo problemas con los bloques, osea las zonas q qremos repetir X veces.

Lo q hago es genero el html con dreamweaver y para los bloques implemento lo siguiente.

header.html
Código PHP:
<table>
<
block>
<
tr>
  <
td>{titulo}</td><td>{texto}</td>
</
tr>
</
block>
</
table
Luego en el codigo php (index.php)

index.php
Código PHP:
include('class-tpl.php');
$html = new SpynTPL("themes/");
$html->Fichero("header.html");

$result $db->query("SELECT * FROM ".PREFIX."_noticias");
$aNot = array();
while (
$row $db->fetch_row($result))
{
    
$aNot array_merge($aNot,array ( 'titulo' => $row[0], 'texto' =>$row[2]));
}
$html->Asigna($aNot); 
Y deberia salir esto.

salida
Código PHP:
<table>
<
tr>
  <
td>TITULO 1</td><td>TEXTO1</td>
</
tr>
<
tr>
  <
td>TITULO 2</td><td>TEXTO2</td>
</
tr>
</
table
__________________
SymbianForever
SymbianForever.com, todo sobre y para tu symbian
aNieto2K | Themes para WordPress
De todo un poco
  #6 (permalink)  
Antiguo 17/06/2005, 10:36
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años
Puntos: 2
Hola

Lo que menciona jam1138 tiene razon, yo lo tengo simplemente como:

array_push($arr1, '1');

Pero son arreglos unidimensionales que uso basado en indices numericos, como, arr1[0], arr1[1], etc... no con nombres, como arr1["Campo1"], arr1["Campo2"]

Pero se me ocurre que puedes tener una matriz, como:

arrBase = new array(
"Campo1" => 1,
"Campo2" => 2,
"Campo3" => 3,
)

$arrN = array(arrBase);

Entonces, cuando haces un push, en arrN se estaría pegando como un nuevo elemento, tal vez esto funcione como:

Donde:

arrBase["Campo1"] = 1
$arrN[0]["Campo1"] = 1

Entonces puedes tener como:

arr2 = arrBase

array_push(arrN, arr2);

Con lo que ya tendrias:

arrN[1]["Campo2"] = 2

Bueno, es cosa de que lo pruebes, creo que asi debe de funcionar, pero no me ha tocado necesitar algo de ese modo.

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #7 (permalink)  
Antiguo 20/06/2005, 10:13
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años
Puntos: 2
Hola!

Acabo de desarrollar algo donde necesite pegar arreglos, lo hice así:

$rs = consultaMySql.

$arrRs = array()
while ($arrTmp = my_sql_fetcharray)
{
array_push($arrRs, $arrTmp)
}

echo $arrRs[0]["Campo1"];
echo $arrRs[1]["Campo1"];
echo $arrRs[2]["Campo1"];

Creo que eso sería lo que necesitas, yo también lo aplique para una lista de resultados.

Suerte!!.
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
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 03:47.