1

sort を使用して、次のように配列をアルファベット順に並べ替えています。

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

しかし、このコードを使用して配列を出力すると、機能しません。

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

並べ替えを削除すると機能します。ここで何が間違っているのですか?どうすればこれを正しく設定できますか?

4

2 に答える 2

4

sort関数はブール値を返すため、データを上書きしています。$Consumer参照によって変数を変更します。

試してみてください:

sort($Consumer);
foreach ($Consumer as $value) 
{
   echo '<option value="'.$value.'">'.$value.'</option>';
}
于 2012-09-18T12:27:36.053 に答える
3

ソートは参照によって機能します

ドキュメントに示されているように、並べ替えは参照によって機能し、ブール値を返します

bool sort(array&$ 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>';
}
于 2012-09-18T12:27:18.820 に答える