2010-02-02 4 views
3

Laquelle des deux structures de données suivantes est "meilleure"?Quel est le moyen le plus efficace de stocker cette paire ordonnée en php?

array('key'=>array(1,2,3,4)) 

OR:

array('key',array(1,2,3,4)) 

-à-dire, est-il préférable de stocker la matrice en tant que deuxième élément dans une deuxième rangée d'éléments, ou en tant qu'élément unique dans un tableau avec la clé, « clé » .

Supposons que pour mes besoins, en matière de commodité, ils sont équivalents. Je suis seulement curieux de savoir si l'on utilise plus de ressources que l'autre.

Répondre

4

Vous utilisez celui qui est approprié pour ce que vous essayez de stocker.

Si la clé se rapporte à la matrice de valeurs et qu'elle est unique, utilisez la clé/valeur.

S'inquiéter des ressources utilisées dans ce genre de situation sont des micro-optimisations et une distraction non pertinente.

2

Si c'est la taille complète de la matrice, alors c'est bien.

Cependant, si vous avez fait un tableau comme

array(
    array('key', array(...)), 
    array('key', array(...)), 
    array('key', array(...)), 
    etc 
); 

au lieu de

array(
    'key' => array(...), 
    'key' => array(...), 
    'key' => array(...), 
); 

Ensuite, il est non seulement étrange, il est très illisible.

2

La chose beaut d'avoir clé nommée à la valeur est la suivante:

"Je veux que la valeur de Bob"

$bob = $myArray['bob']; 

au lieu de

foreach($myArray as $key => $value) { 

    if ($value[0] === 'bob') { // the first value of your 2nd type 
     $bob = $myArray[1]; // get the next value. 
    } 

} 

Bien sûr, pour le 2ème exemple, vous pouvez envisager end(). Mais comparez le 2, il est évident que le premier exemple gagne!

Questions connexes