将php数组转换为select

时间:2013-11-01 12:12:03

标签: php arrays select

我有下面的arrray(print_r显示):

Array ( [address] => Array ( [0] => ikea, 17 Old Main Road, dubai ) [idDelAddress] => Array ( [0] => 102 ) ) 

我想将其转换为一个选择框,其中[address]是显示的文本,[idDelAddress]是要与表单一起发布的值。

它们似乎是两个独立的数组。

我试过这个,但显然它不能完全运作。

foreach ($customeraddresses['address'] as $key => $value) {
    echo $key;
    echo "<br>";
    echo $value;
    //  echo '<option value="'.$key.'">'.$value.'</option>';
}

一如既往地谢谢,

2 个答案:

答案 0 :(得分:2)

它应该。您是否在select代码周围添加了option代码?

<select>
<?php

foreach ($customeraddresses['address'] as $key => $value) {

echo '<option value="'.$key.'">'.$value.'</option>';

}

?>
</select>

你有一个奇怪的数组结构。你有一个数组只有一个值...数组看起来应该是这样的。

Array ( 
    [102] => 'ikea, 17 Old Main Road, dubai '
)

如果你不能改变它的结构,你必须做一个更复杂的代码。像这样:

$countAddresses = count($customeraddresses['address']);

for($i = 0; $i < $countAddresses; ++$i) {
    echo '<option value="' . $customeraddresses['idDelAddress'][$i] . '">' . $customeraddresses['address'][$i] . '</option>';
}

答案 1 :(得分:1)

实际上你的阵列没有最好的结构,无论如何(如果我的结构正确)你可以做以下

echo '<option value="'.$customeraddresses['idDelAddress'][0].'">'.$customeraddresses['address'][0].'</option>';

如果你的阵列更大,你可以做

for($i = 0; $i < sizeof($customeraddresses['address']); $i++) {
    // key -> $customeraddresses['idDelAddress'][$i]
    // val -> $customeraddresses['address'][$i]
}