Una URL no permite pasar un valor array, por lo que tendremos que convertirla en un dato simple y en la página destino deshacer el cambio. Utilizamos las funciones serialize() para compactar un array y unserialize para volver a pasar el valor compactado a un dato de tipo array. También tendremos que usar las funciones urlencode() para garantizar que todos los valores pasados son válidos para la URL y stripslashes() para eliminar las contrabarras que se añaden para proteger ciertos caracteres.
A continuación vemos un ejemplo:
<?php
echo '<head>
|
<title>'.$_SERVER[PHP_SELF].'</title>
|
</head>
|
<html>
|
<body>';
// mostramos el array recibido
|
if (isset($_GET[mi_var_array]))
|
{
|
$a=stripslashes ($_GET[mi_var_array]);
|
$mi_array=unserialize($a);
|
foreach ($mi_array AS $clave => $valor)
|
echo "$clave ----> $valor <br>";
|
}
|
// Creamos un array
|
$mi_pasa_array=array("Spiderman" =>354, "Shrek2" =>462, "CatWoman" => 286);
$compactada=serialize($mi_pasa_array);
|
$compactada=urlencode($compactada);
|
echo "<p>";
|
echo "<a href=$_SERVER[PHP_SELF]?mi_var_array=$compactada>Recargar la Página</a>";
echo '</body>
|
</html>';
?>
|