我有以下代码:
foreach ($model_name as $md) {
foreach ($years as $y) {
$model_w_year[$y] = $md;
}
}
显然不起作用。它输出的数组看起来像:
Array
(
[1994] => Maxima
[1995-1998] => Maxima
)
我希望它看起来像这样:
Array
(
[1994] => Sentra
[1995-1998] => Maxima
)
Model_name是上一页的$ _SESSION ['model_name'],years是一个表单数组
echo "<form action='engine.php' method='post'>";
for ($i = 0; $i < count($model_name); $i++) {
echo "Enter year or year range for: ", $model_name[$i],
" <input type='text' name='years[]'></input><br />";
}
以下是我拥有的所有数组结构:
Model make:
Nissan
model name:
Array
(
[0] => Sentra
[1] => Maxima
)
Number of models:
2
Number of years:
Array
(
[0] => 1994
[1] => 1995-1998
)
Model with Year:
Array
(
[1994] => Maxima
[1995-1998] => Maxima
)
答案:是的我希望将年份作为关键,将模型作为价值。
答案 0 :(得分:1)
如果您试图以某种方式从$model_name
和$years
数组中获取某些键值分组,那么您的循环结构似乎没有意义。因为对于每个型号名称,您将遍历每个可用年份并将值设置为当前型号名称。因此,无论您的阵列中的最后一个型号名称如何,最终都将为所有型号年份设置。
根据您的问题,它看起来像模型名称数组,而且数组中的匹配值将具有相同的数字索引。因此,您可以使用类似array_combine()
的内容来合并这些值
$merged_array = array_combine($years, $model_name);
这会使用$years
作为数组键,使用$model_name
作为值。
答案 1 :(得分:1)
Mike Brant的answear解释了为什么你的代码不能按照你想要的方式工作。如果我理解正确,您有两个数组$model_name
和$years
,其中$years[$i]
是用户为第i个模型输入的年份。也就是说,数组看起来像这样
Array (
[???] => Sentra
[???] => Maxima
)
和这个
Array (
[0] => 1994
[1] => 1995-1998
)
在这种情况下,我认为这段代码可以解决问题:
$i = 0;
foreach ($model_name as $md) {
$model_w_year[$years[$i]] = $md;
$i++;
}
它不是很漂亮,但我认为它应该有效。