我有两个数组array1和array2。我想将这两个数组合并为一个,并在下拉列表中显示合并数组的值。我希望值的方式是第一个数组的值 - 第二个数组的值。
例如:
$employeePlaces1 = array(1, 2, 4,9);
$employeePlaces2 = array(3, 5, 6,7);
我想在下拉列表中显示$employeePlaces1[0]-$employeePlaces2[1]
,
$employeePlaces1[0]-$employeePlaces2[1]
。
1-3,
2-5,
4-6,
9-7.
我该怎么做?
答案 0 :(得分:2)
您可以使用array_diff
功能
http://www.php.net/manual/en/function.array-diff.php
回答编辑过的问题
//assuming both the arrays have the same length
echo "<select>";
for($i=0;$i<count($employeePlaces1);$i++)
{
echo "<option>".$employeePlaces1[i]." - ".$employeePlaces2[i]."</option>";
}
echo "</select>";
答案 1 :(得分:2)
$employee1 = array(1, 2, 4, 9);
$employee2 = array(3, 5, 6, 7);
function doMerge($n, $m) {
return $n.'-'.$m;
}
$c = array_map("doMerge", $employee1, $employee2);
print_r($c);
或者使用lambda style functions的PHP 5.3语法:
$c = array_map(function($n, $m) {return $n.'-'.$m;}, $employee1, $employee2);
答案 2 :(得分:1)
以下是您可以手动循环并将值匹配的方法。
$list = array();
for($i=0; $i<=count($employeePlaces1); $i++) {
$list[] = $employeePlaces1[$i].'-'.$employeePlaces2[$i];
}
没有经过测试,但应该是你需要的要点。
答案 3 :(得分:1)
如何使用array_combine
?
答案 4 :(得分:0)
为什么不绕过数组,也就是说要做好。然后你可以继续做其他事情!
编辑以回应评论1:
CakePHP期待:
<?php echo $this->Form->input('field', array('options' => array(
'Value 1'=>'Label 1',
'Value 2'=>'Label 2',
'Value 3'=>'Label 3'
))); ?>
所以像(伪代码):
resultsArray = array();
loop
resultsArray[i] = inputArray_1[i]-inputArray_2[i];
endloop
PHP中的(假设array1的大小&lt; = array2的大小):
for($i=0;$i<count($inputArray_1);$i++)
{
$resultsArr[$i] = $inputArray_1[$i]-$inputArray_2[$i];
}