2011-03-24 92 views
1

我有兩個數組。我想連接到以下格式。格式如下所示。有關數組的問題

Getting form values using post method 
    /************ Getting Form names like Weight,arms Age etc **********************/ 
     foreach ($_POST["form_field_names"] as $key => $values) { 
    $form_field_name = $values; 
} 

/************ Getting Form Values like 45,90,2 **********************/ 
foreach ($_POST["form_field_values"] as $key => $values) { 
    $form_field_values[] = $values; 
} 

Array 
(
    [0] => Age 
    [1] => Weight 
    [2] => Arms 
) 
Array 
(
    [0] => 45 
    [1] => 90 
    [2] => 2 
) 

想連接到以下格式

$output = $Age.","."45".",".$Weight.","."90".",".$Arms.","."2".","; 

這可能嗎?感謝

回答

5

我建議您先合併兩個數組into one關聯數組:

$assoc = array_combine($keys_array1, $num_array2); 

然後,它只是一個循環了,要產生輸出字符串的事:

$str = ""; 
foreach ($assoc as $key=>$num) { 
    $str .= "$key,$num,"; 
} 

如若尾隨,是一個問題(你沒有說),然後我會採用$str = rtrim($str, ",")之後的解決方法。

+0

通過創建中間數組來浪費內存。可以通過一個for循環完成請參閱@Rob Williams的答案。 – codaddict 2011-03-24 06:54:17

+0

@codaddict:沒錯,我會在循環中將其作爲臨時文件。但是這只是另一個1K,在堆棧碎片或回調中的臨時字符串中很容易被超過。 @ Rob'帶'$$ keyname'的想法最終更具相關性。 – mario 2011-03-24 06:59:39

+0

@mario'array_combine($ form_field_name,$ form_field_values);'這句話是否正確?它不工作。 – 2011-03-24 07:07:17

0

可以「合併」您的並行陣列

我會打電話給你的第一陣列$arr1和第二$arr2

$newArr = array(); 
foreach($arr1 as $k=>$v) 
    $newArr[$v] = $arr2[$k]; 

或檢查出array_combine如提到的其他海報。 PHP有一些很好的數組函數,它總是很好用。

一旦你有這種格式的陣列

['Age'] => 45 
['Weight'] => 90 
['Arms'] => 2 

可以打印他們你所希望的方式如下

foreach($newArr as $k=>$v) 
    echo "$k: $v " 
2

似乎是一個奇怪的要求,但確定...;)

$output = ""; 

for ($i = 0; $i < count($array1); $i++) { 
    $output .= $array1[$i] . "," . $array2[$i] . ","; 
} 

現在,將連接array1中的字符串。如果你正在尋找來連接在陣列1串命名的變量,一個非常類似的循環應該工作:

$output = ""; 

for ($i = 0; $i < count($array1); $i++) { 
    $output .= $$array1[$i] . "," . $array2[$i] . ","; 
} 

認爲應該工作。

0
$str = ''; 
foreach($array1 as $key => $value) 
{ 
    $str .= $value.",". $array2[$key].","; 
}