我有一个购物车($ _SESSION [cart_array])。我想使用该数组中唯一的GroupName字段填充选择/选项列表。
我的方法是1)创建一个只包含GroupName字段的新数组,然后2)使用array_unique()创建一个只有唯一值的第三个数组。
我认识到这可能不是最有效的方式,欢迎提出建议。
然而,在我达到这一点之前,我有一个更基本的问题。我似乎只是分配变量的第一个字母。
$GroupNames = array();
foreach($_SESSION[cart_array] as $h) {
echo $h['GroupName']."<br>";
$GroupNames[] = $h['GroupName'];
}
foreach ($GroupNames as $entry) {
echo $entry['GroupName'] . "<br>";
}
print_r($GroupNames);
上面代码的输出是: 水晶农场
Java Garden Batiks
Java Garden Batiks
Java Garden Batiks
Crystal Farm - Precuts
Crystal Farm - Precuts
C
Ĵ
Ĵ
Ĵ
C
C
数组([0] =&gt; Crystal Farm [1] =&gt; Java Garden Batiks [2] =&gt; Java Garden Batiks [3] =&gt; Java Garden Batiks [4] =&gt; Crystal Farm - Precuts [5] =&gt; Crystal Farm - Precuts)
我的研究表明我似乎没有将$ GroupName声明为数组,但它看起来像我一样。所以,我迷失了。提前谢谢。
答案 0 :(得分:1)
$GroupNames[] = $h['GroupName'];
实际上构建了一组组名,例如:
$GroupNames = array(
"group1",
"group2"
)
但是你这样做
foreach ($GroupNames as $entry) {
// This bit is looking for a key which does not exist.
echo $entry['GroupName'] . "<br>";
//Instead try
echo $entry . "<br>";
}
或者,也许你真的想要一个多维数组。在这里构建它的原因是什么:
foreach($_SESSION[cart_array] as $h) {
$GroupNames[] = $h['GroupName']; //current
// You want the following
$GroupNames[] = array("GroupName" => $h['GroupName']);
}
然而,在目前的例子中,我认为我会选择选项1.