2010-07-09 43 views
1

我有两个阵列你如何在PHP中映射数组?

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

从这两个阵列我想要得到的结果是这样

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

输出

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

回答

4

你想合并它们吗?

$display = ""; 

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

就是这样的。我没有在一段时间使用PHP。

+0

是的,LukeN,只是简单的说我找不到了,谢谢你的帮助。 – kn3l 2010-07-09 22:56:52

+0

您可能希望将调用移至for循环条件中的'count($ K)'。每次评估条件时,它会计算一次数组的大小。 – 2011-06-24 18:34:05

4

您可以使用array_map()做到这一点:

<?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

为什么不数组只是存储作为一个关联数组开始,所以你不必他们以后结合起来。例如,

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

或者如果你必须有两个单独的数组,并将它们结合使用php的内部array_combine函数。例如,

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