按键对数组进行排序 - PHP


Sorting an array by a key - PHP

我有一个程序,允许用户将提案添加到审查委员会。我从表单中传入了名字和提案消息,将其存储到字符串中,然后将其存储到索引数组中。我对PHP很陌生。

字符串示例:

$text = "UserName:$user<br/>Proposal:$prop";

显示时,它看起来像:

用户名: " "

建议:"

用户名: " "

建议:"

我想为用户提供按用户名按字母顺序排序的选项:

该数组如下所示:

$arr=array(
0 => UserName:bfoo<br/>Proposal:foo foo
1 => UserName:afoo<br/>Proposal:foo foo
2 => UserName:cfoo<br/>Proposal:foo foo)

按用户名排序后,我希望它看起来像:

 $arr=array(
0 => UserName:afoo<br/>Proposal:foo foo
1 => UserName:bfoo<br/>Proposal:foo foo
2 => UserName:cfoo<br/>Proposal:foo foo)

我想你正在寻找这样的东西:

usort($array, function($a, $b) {
$lines_a = explode("<br/>", $a);
$lines_b = explode("<br/>", $b);
return strcmp(str_replace("UserName:", "", $lines_a[0]), str_replace("UserName:", "", $lines_b[0]));
});

但是,如果您按值排序,它也将为您提供正确的结果(因为 UserName: 字符串在所有值中都是相同的,我们并不真正关心名称后面的内容。

所以只需使用这个:排序。