通过键对数组进行排序 - PHP

时间:2016-04-23 16:27:26

标签: php sorting

我有一个程序,允许用户将提案添加到审查委员会。我从表单传入了firstname和proposal消息,将其存储到字符串中,并将其存储到索引数组中。我是PHP的新手。

字符串示例:

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

显示时看起来像:

用户名:&#34; &#34;

提案:&#34; &#34;

用户名:&#34; &#34;

提案:&#34; &#34;

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

数组看起来像:

$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)

1 个答案:

答案 0 :(得分:0)

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

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:字符串在所有值中都是相同的,我们真的不在乎后面的内容名字。

所以只需使用:sort