2010-07-09 44 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; ";