2010-07-09 5 views
1

J'ai deux choixComment mapper un tableau en php?

K = {"a", "b", "b"}; 
V = {"1", "2", "3"}; 

de ces deux choix, je veux obtenu le résultat comme celui-ci

$display = "a: 1; b: 2; c: 3;" 
echo $display; 

sortie

"a: 1; b: 2; c: 3;" 

Répondre

4

Vous souhaitez les fusionner?

$display = ""; 

for ($i = 0; $i < count($K); $i++) 
{ 
    $display .= $K[$i] . ": " . $V[$i] . "; "; 
} 

Quelque chose comme ça. Je n'ai pas utilisé PHP depuis un moment.

+0

oui, Lüken, tout simple, que je ne pouvais pas trouvé, merci pour votre aide. – kn3l

+0

Vous pouvez déplacer l'appel à 'count ($ K)' hors de votre condition de boucle for. Il va compter la taille du tableau une fois chaque fois qu'il évalue la condition. –

4

Vous pouvez utiliser array_map() pour ce faire:

<?php 

function combine($k, $v) 
{ 
    return "$k: $v"; 
} 

$K = array("a", "b", "c"); 
$V = array("1", "2", "3"); 

$display = implode(", ", array_map("combine", $K, $V)); 
1

pourquoi ne pas simplement stocker le tableau comme un tableau associatif pour commencer et vous ne devez pas les combiner plus tard. par exemple,

$arr = array('a' => 1, 'b' => 2, 'c' => 3); 
foreach($arr as $k => $v)  
    echo "$k: $v; "; 

ou si vous devez avoir deux réseaux séparés et combiner les utiliser la fonction array_combine interne de php. par exemple,

$k = array('a','b','c'); 
$v = array(1,2,3); 
$result = array_combine($k,$v); 
foreach($result as $k => $v) 
    echo "$k: $v; ";