2011-03-24 51 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].","; 
}