2011-08-22 6 views
1

J'ai deux tableaux, $country et $redirect avec chaque entrée correspondant à sa contrepartie exacte, par ex. $redirect[1] et $country[1].Réorganisation du tableau via des clés de tableau?

Après avoir désactivé les valeurs dans l'ensemble de la matrice, il se peut que je reste avec, par exemple, un tableau où seuls les paramètres $var[4] et $var[2] sont définis. Je souhaite réattribuer des clés de tableau à partir de 0, de sorte que $var[2] soit réattribuée à $var[0] et $var[4] à $var[1].

Essentiellement, la fonction sort(), mais le tri par la clé de tableau en cours, s'oppose à la valeur numérique/chaîne d'un tableau.

Est-ce possible?

Des réponses ou des conseils seraient grandement appréciés;)!

MISE À JOUR:

J'ai tenté d'utiliser à la fois ksort() et array_values(), mais je ne suis pas sûr qu'ils sont vraiment ce que je dois, comme je l'intention d'utiliser la fonction size_of().

Mon code:

$var = array(2 => "value_1", 4 => "value_2", 6 => "value_3"); 
ksort($var); 
for($i = 0, $size = sizeof($var); $i < $size; $i++) { 
    $var[$i] = "foo"; 
} 
var_dump($var); 

Retours:

array(5) { [2]=> string(3) "foo" [4]=> string(7) "value_2" [6]=> string(7) "value_3" [0]=> string(3) "foo" [1]=> string(3) "foo" } 

Toutes les idées complémentaires/réponses sur la façon dont je pourrais obtenir ce travail serait grandement appréciée!

Répondre

2

Utilisez array_values() (retours "classés" tableau):

$var = array(2 => "value_1", 4 => "value_2", 6 => "value_3"); 
$var = array_values($var); 
for($i = 0, $size = sizeof($var); $i < $size; $i++) { 
    $var[$i] = "foo"; 
} 
var_dump($var); 
+0

+1 Je voulais vous proposer array_values ​​() aussi –

+0

de remerciements énormes, je vais accepter votre réponse lorsque la chute minuterie;)! – Avicinnian

+0

Oh, y at-il une raison d'utiliser 'array_values ​​()' sur 'ksort()'? – Avicinnian