2010-12-02 4 views
0

Je passe des tableaux comme arguments dans une fonction. Par exemple:Récupère des clés de tableau en argument dans PHP

 
test($someArray[2][3]); 

Dans ce cas, la fonction obtient la valeur stockée dans (2,3), mais il existe un moyen d'obtenir la valeur des touches (2,3) à l'intérieur de la fonction travailler? La fonction doit utiliser la position x, y de la valeur pour effectuer certains calculs.

Merci!

Répondre

1

Pas de cette façon, non. Si vous appelez test($someArray[2][3]), PHP ne transmettra que la valeur, mais pas de référence d'où provient cette valeur. Son propre à transmettre les valeurs séparément de toute façon

function test($x, $y, $value) { /* do something */ } 
+0

Oui, c'est le moyen le plus simple. Je pensais qu'il y avait une fonction sombre pour faire le travail mais bon, je vais devoir le faire "correctement". Merci à tous! –

0

Vous passez seulement l'élément unique à [2][3]; Une fois dans la fonction, il n'y a pas de tableau. Si vous avez besoin des positions, vous devez passer le tableau/élément et les indices séparément:

test($someArray, 2, 3); // if you might access other elements too 

ou:

test($someArray[2][3], 2, 3); // if you don't need other elements 
1

Nope, l'indice sera effectué avant la fonction reçoit.

Donc, si votre code est ...

$someArray = array(
    2 => array(3 => 'Hello'); 
); 

function test($arg) { 

} 

test($someArray[2][3]); 

Ensuite $arg sera une chaîne Hello. Il ne sait pas ou ne se soucie pas d'où il vient.

+0

non, le 'arg' de $ serait' null' et soulever un avis puisque le tableau que vous avez créé est nommé 'arr' de $, pas' $ someArray' ..: P – redShadow

+0

@redShadow Ah oui, oups! :) Éditer ... – alex

Questions connexes