Foros del Web » Programando para Internet » PHP »

Declararacion de arrays

Estas en el tema de Declararacion de arrays en el foro de PHP en Foros del Web. Hola! quiero consultarles como hacer para declarar un array sin poner contenido en él al crearlo. He intentado algo como $nombre = array(); pero parece ...
  #1 (permalink)  
Antiguo 23/10/2007, 15:12
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Pregunta Declararacion de arrays

Hola! quiero consultarles como hacer para declarar un array sin poner contenido en él al crearlo. He intentado algo como $nombre = array(); pero parece no funcionar (no tengo experiencia en PHP)

La idea es que este codigo funcione y necesito los arrays:

<?php
// Creado originalmente por Bozzolo Pablo para VB6 (2007)

// Variables para Insider2

$posO = array(); // valores de apertura
$posC = array(); // valores de cierre


Function Insider2($cad,$str1,$str2){
# devuelve TODOS los substringS enre str1 y str2
$ix = 0; # indice de los arrays

global $posO; global $posC; # declaro como globales estos arrays

$cadena = " ".$cad; // desplazo con espacio "a proposito" por condicional ($pos1 <> 0)

For ( $i = 0; $i<100; $i++){ #limpio array
$posO[i] = 0; $posC[i] = 0;
}

$tempo = 0;

for ( $i = 0 ; $i < strlen($cadena) ; $i ++) {
$posO[ix] = strpos($cadena, $str1,$i);
If ($posO[ix] <> 0) {
$valor = strpos($cadena, $str2,$i + strlen($str1));
If (($valor > $tempo) && $valor <> 0) {
$posC[ix] = strpos($cadena, $str2,$i + strlen($str1));
$tempo = $posC[ix];
$ix++;
}
}
}

--$posO[ix];--$posC[ix]; // resto 1 a ambas posiciones para ser coherente con el desplazamiento inicial por el espacio

If (($posO[ix] = 0 || $posC[ix] = 0) && $ix > 0) {
$ix--;
}
return $ix; #devuelve numero de elementos
}


} # main

$entrada = "<a href='http1' title='title1'>Anchor1</a> ufeirhhfreui <a href='http2' title='title2' >ANCHOR 2</a> <p/> <a href='http3' title='title3' >aNCHOR III</a>";

$tags = Insider2($entrada, "<a", "</a>");
//print "<p/>Tags: ".$tags."<p/>";

For ($i = 0; $i<$tags; $i++){
$enlace = substr($entrada, $posO[$i], $posC[$i]);
Print $i." ".$posO[$i]." ".$posC[$i]." " .$enlace;
}

?>

Agradecido desde ya!!
  #2 (permalink)  
Antiguo 23/10/2007, 15:31
Avatar de deet  
Fecha de Ingreso: mayo-2005
Ubicación: Córdoba - Argentina
Mensajes: 269
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Declararacion de arrays

con $nombre = array(); creas arrays vacíos.

me he bajado el código y me salió un error en la línea 44:

} # main

la borré y me salió el siguiente resultado:

0 1 2



no sé si ese resultado es el esperado.
  #3 (permalink)  
Antiguo 23/10/2007, 15:43
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Desacuerdo Re: Declararacion de arrays

Deet: no... eso que viste es una cuenta de "elmentos" pero si te fijas no se muestran los valores de los arrays:

} // main

$tags = Insider2($entrada, "<a", "</a>");
//print "<p/>Tags: ".$tags."<p/>";

Print $posO[0]; // no muestra nada!!!
Print " ";
Print $posC[0]; // aca tampoco muestra nada!!!!
Print " ";

For ($i = 0; $i<$tags; $i++){
$enlace = substr($entrada, $posO[$i], $posC[$i]);
Print $i." ".$posO[$i]." ".$posC[$i]." " .$enlace; // aca tampoco!!!!!!!!!!!!!!!!!
//Print "<br>enlace: ".$enlace." title= ". Insider($enlace, "title='", "'");
}


?>
  #4 (permalink)  
Antiguo 23/10/2007, 16:10
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 5 meses
Puntos: 48
Re: Declararacion de arrays

Errores:

- Se te olvida muchas veces (casi todas) el $ en la variable del indice de array. Haz un vardump() o un print_r() para ver el array que has creado.

- En PHP el = es siempre asignacion, nunca comparacion

If (($posO[ix] = 0 || $posC[ix] = 0) && $ix > 0)
  #5 (permalink)  
Antiguo 23/10/2007, 16:37
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Re: Declararacion de arrays

DarkJ: optimas tus correcciones ;)

Ahora hace EXACTAMENTE lo que estaba buscando y soy feliz :D
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:37.