php-仅将数组中的唯一值放入下拉列表

php-仅将数组中的唯一值放入下拉列表,php,Php,我有一个类似于以下内容的数据数组: $array[0] = array('key1' => 'value1a','key2' => 'value2a','key3' => 'value3a'); $array[1] = array('key1' => 'value1a','key2' => 'value2b','key3' => 'value3b'); $array[2] = array('key1' => 'value1b','key2' =>

我有一个类似于以下内容的数据数组:

$array[0] = array('key1' => 'value1a','key2' => 'value2a','key3' => 'value3a');
$array[1] = array('key1' => 'value1a','key2' => 'value2b','key3' => 'value3b');
$array[2] = array('key1' => 'value1b','key2' => 'value2b','key3' => 'value3c');
$array[3] = array('key1' => 'value1c','key2' => 'value2c','key3' => 'value3c');
我需要使用这些数据根据每个键创建一组下拉列表。但是,我希望删除重复项,以便每个下拉列表只显示唯一的值

我从以下几点开始:

<select>
<?php   
    foreach($array AS $arr)
        {
            print "<option>".$arr['key1']."</option>";
        };
?>
</select></br>
但我不明白为什么会这样,或者如何修复它以获得我想要的列表


如何获得唯一条目的列表?

自PHP 5.5以来,您可以使用以下函数:

    foreach(array_unique(array_column($array, 'key1')) AS $arr)
    {
        print "<option>".$arr."</option>";
    };
foreach(数组\唯一(数组\列($array,'key1'))作为$arr)
{
打印“$arr.”;
};
但是,如果您有旧版本,您可以:

    foreach(array_unique(array_map(function($rgItem)
    {
       return $rgItem['key1'];
    }, $array)) AS $arr)
    {
        print "<option>".$arr."</option>";
    };
foreach(数组唯一(数组映射)(函数($rgItem)
{
返回$rgItem['key1'];
},$array)作为$arr)
{
打印“$arr.”;
};

自PHP 5.5以来,您可以使用以下函数:

    foreach(array_unique(array_column($array, 'key1')) AS $arr)
    {
        print "<option>".$arr."</option>";
    };
foreach(数组\唯一(数组\列($array,'key1'))作为$arr)
{
打印“$arr.”;
};
但是,如果您有旧版本,您可以:

    foreach(array_unique(array_map(function($rgItem)
    {
       return $rgItem['key1'];
    }, $array)) AS $arr)
    {
        print "<option>".$arr."</option>";
    };
foreach(数组唯一(数组映射)(函数($rgItem)
{
返回$rgItem['key1'];
},$array)作为$arr)
{
打印“$arr.”;
};

$array
是多维数组。Do
print\r($array)你就会明白我在说什么。这个例子可以帮助你
$array
是多维数组。Do
print\r($array)你就会明白我在说什么。这个例子可以帮助你。为此干杯,我目前正在运行PHP5.4,但您提供的第二个选项似乎很有用。为此干杯,我目前正在运行PHP5.4,但您提供的第二个选项似乎很有用。
    foreach(array_unique(array_map(function($rgItem)
    {
       return $rgItem['key1'];
    }, $array)) AS $arr)
    {
        print "<option>".$arr."</option>";
    };