2010-08-10 10 views
0

Je voudrais sortie mon tableau php dans ce format: [1991, 6.5], [1992, 4], [1993, 5,9]Comment imploser 2 dimensions en crochets

tableau PHP:

while ($row = mysqli_fetch_array($result)) 
{ 
    $metals[] = array('year' => $row['year'], 
        'metal' => $row['metal']; 
} 

J'ai vu quelques exemples de fonction implosée mais je n'ai pas trouvé d'exemple qui puisse correspondre à ce que je veux faire.

Merci pour votre aide.

+0

À quoi ressemble votre baie? –

+0

Quelle est la deuxième valeur? Je veux dire 6,5 ou 4 ou 5,9? – Centurion

+0

Le tableau associatif '$ metals' que vous montrez comporte trois éléments. La sortie désirée indique seulement deux et aucune touche. – Gordon

Répondre

1

Essayez

$tmp = array(); 
foreach($metals as $metal){ 
    $tmp[] = '['.implode(",", $metal).']'; 
} 
$formatted_output = implode(",", $tmp); 
print_r($formatted_output); 
+0

la sortie devient [tableau, tableau, tableau, tableau, tableau], [tableau, tableau, tableau, tableau, tableau]. Je ne sais pas comment il devient 5 éléments dans un seul tableau. – dave

1

Ma boule de cristal suggère que vous voulez générer JSON pour un thingie AJAX. Si oui, je est aussi simple que cela:

<?php 

$metals = array(); 
$metals[] = array(1991, 6.5); 
$metals[] = array(1992, 4); 
$metals[] = array(1993, 5.9); 

echo json_encode($metals); 

?> 

qui imprime:

[[1991,6.5],[1992,4],[1993,5.9]] 
+0

ummmmmmm ........ –

+0

Salut Alavaro, vous avez raison de ce que je prévois de faire. Cependant, j'ai plus de centaines d'enregistrements. Je regarde la direction de créer une boucle while pour sortir des données dans ce format. Y'a-t'il un quelconque moyen d'y arriver? – dave

+0

Et comment allez-vous supprimer les citations de l'intérieur. Actuellement, j'ai ["1991", "5.6"], ["1992", "6"]. Merci Alvaro. – dave

0

array_map est une fonction de rappel, où vous pouvez jouer avec le tableau passé! cela devrait fonctionner.

$str = implode(',', array_map(function($el){ return $el['tag_id']; }, $arr));