我有一个从mysql查询创建的多维数组。 每个索引包含一个包含客户信息的数组。我想从中创建一个下拉列表,值是客户ID,文本是客户名称,但我不知道如何访问主数组内的数组。
我有以下函数,我用来从单个数组创建其他下拉列表,但是当我尝试将其与多维数组一起使用时,它只返回索引号。(我得到一个 0、1、2、3 的列表(
function createDropDown($name = '', $options = array()) {
$dropDown = '<select name="'.$name.'">';
foreach ($options as $option => $value) {
$dropDown .= '<option value='.$value.'>'.$option.'</option>';
}
$dropDown .= '</select>';
return $dropDown;
}
编辑
它的二维,一个包含客户详细信息数组的数组。我的查询在不同的页面上运行,因此我将结果保存到会话变量中。
$searchtext = $_POST['searchDB'];
$query = "SELECT * FROM customer WHERE First_Name LIKE '%$searchtext%'";
$data = mysql_query($query) or die(mysql_error());
$Customers = array();
while($row = mysql_fetch_assoc($data)){
$Customers[] = $row;
}
$anymatches = mysql_num_rows($data);
if ($anymatches != 0) {
$_SESSION['names']=$Customers;
}
print_r($array(给了我以下内容:
数组 ( [0] => 数组 ( [ID] => 25 [First_Name] => 玛吉 [姓氏] => 巴罗斯 [Company_Name] => 波浪线 [电话] => 12121212 [Alt_Telephone] => 4343434 [注释] => ( (
像那样:
function createDropDown($name = '', $options = array()) {
$dropDown = '<select name="'.$name.'">';
foreach ($options as $option => $value) {
$dropDown .= '<option value='.$value['ID'].'>'.$value['First_Name'].' '.$value['Surname'].'</option>';
}
$dropDown .= '</select>';
return $dropDown;
}
function createDropDown($name = '', $options = array()) {
$dropDown = '<select name="'.$name.'">';
foreach ($options as $option ) {
$dropDown .= '<option value="'.$option["name"].'">'.$option["name"].'</option>';
}
$dropDown .= '</select>';
return $dropDown;
}
尝试使用上述方法将"name"替换为所需的值和标签的字段名称
在你的foreach
中,$option => $value
可能更容易理解为$key => $option
。$key
是选项的index
,$option
是您设置的值。
如果$value
是一维数组,你可以通过它们的索引(例如$option['id']
和$option['name']
(访问其值。
如果您的选项是一维的,则可以使用以下方法访问它们:
foreach($options as $option) {
$dropDown .= '<option value="' . $option['id'] . '">' . $option['name'] . '</option>';
}
由于您正在处理二维数组,或者换句话说,一个数组嵌套在另一个数组中,因此您必须运行另一个 foreach 循环,如下所示:
function createDropDown($name = '', $options = array()) {
$dropDown = '<select name="'.$name.'">';
foreach ($options as $customer) {
foreach($customer as $info) {
$dropDown .= '<option value='.$info["id"].'>'.$info["name"].'</option>';
}
}
$dropDown .= '</select>';
return $html;
}
我不确定嵌套数组中的实际索引是什么,因此您可能需要稍微调整上面的代码。祝你好运!