当我在数组上使用sort时,foreach不工作

时间:2012-09-18 12:26:36

标签: php arrays sorting

我正在使用sort来按字母顺序对数组进行排序,就像这样:

$Consumer[] = "Norman";
$Consumer[] = "Food";
$Consumer[] = "Clothes";
$Consumer[] = "Chips";

但是当我使用这段代码输出数组时,它将不起作用。

$cat = sort($Consumer);
foreach ($cat as $value) 
{
   echo '<option value="'.$value.'">'.$value.'</option>';
}

如果删除排序,它会起作用。我在这里做错了什么,我该怎么做呢?

2 个答案:

答案 0 :(得分:4)

sort函数返回布尔值,因此您将覆盖数据。 它会通过引用修改您的$Consumer变量。

尝试:

sort($Consumer);
foreach ($Consumer as $value) 
{
   echo '<option value="'.$value.'">'.$value.'</option>';
}

答案 1 :(得分:3)

sort by reference

the docs中所示,sort通过引用进行操作并返回一个布尔值

  

bool sort(array&amp; $ array [,int $ sort_flags = SORT_REGULAR])

所以$cat是布尔值(true或false)。

以下是您的代码的工作示例:

$Consumer[] = "Norman";
$Consumer[] = "Food";
$Consumer[] = "Clothes";
$Consumer[] = "Chips";

sort($Consumer);
foreach ($Consumer as $value) 
{
   echo '<option value="'.$value.'">'.$value.'</option>';
}
相关问题