2009-10-14 9 views
2

Pour simplifier cette question posée, supposons que chaque cellule possède un nom de ligne et un nom de colonne qui vous mappe correctement dans la cellule appropriée. Je parcours des enregistrements DB et crée un emplacement pour certains champs dans un tableau 2D que je vais retourner à l'appelant. Ma question est comment puis-je savoir si une cellule existe déjà dans array [rownName] [colName]?Comment déterminer si une combinaison de touches particulière figure déjà dans un tableau associatif MULTI-DIMENSIONNEL en PHP?

Voici une vue de haut niveau de ce que j'essaie de faire:

//While there are more records: 

    while ($row = mysql_fetch_assoc($result)) { 

    //If this key doeesn't already exist in the return array, 
    //add this key/value pair. 

    //Proper logic for determining whether or not a cell has already been 
    //created for this record would go here... 

    $ret[$row['output_row_id']][$row['output_name']] = $row['output_value'];  
    } 

Merci d'avance pour toute votre aide SO!

Répondre

2

Vous pouvez utiliser array_key_exists ou isset si vous voulez simplement vérifier que certaines touches ont déjà été fixés:

if(array_key_exists($row['output_row_id'],$ret) 
    && array_key_exists($row['output_name'],$ret[$row['output_row_id']])) { 

    $ret[$row['output_row_id']][$row['output_name']] = $row['output_value']; 
} 

ou:

if(isset($ret[$row['output_row_id']][$row['output_name']])) { 

    $ret[$row['output_row_id']][$row['output_name']] = $row['output_value']; 
} 
+0

Cela a parfaitement fonctionné. Je regardais la documentation pour array_key_exists et il ne semblait pas que cela supportait les touches multidimensionnelles. Merci! –

Questions connexes