2016-04-23 12 views
1

私は、ユーザーがレビューボードに提案を追加できるようにするプログラムを持っています。フォームからファーストネームと提案メッセージを渡し、それを文字列に格納し、インデックス付き配列に格納しました。私はPHPがとても新しいです。文字列のキーによる配列の並べ替え - PHP

例:

ユーザー名: ""

提案: ""

ユーザー名: ""

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

、それがどのように見える表示する場合提案: ""

012私は、ユーザーに、ユーザー名のアルファベット順にソートするオプションを提供したいと思い

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

配列は次のようになります

+0

「[PHPで配列をソートする方法](http://php.net/manual/en/function.sort.php)」のようなグーグルで試してみましたか? –

+1

[特定のキーで配列をソートする方法は?](http://stackoverflow.com/questions/2627677/how-to-sort-an-array-by-some-specific-key) –

+0

値をソートして文字列($ text)に入力します –

答えて

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

+0

ユーザの配列を構成する文字列には、最初の動的値としてのユーザ名があります。単純な 'sort()'関数は、この配列をアルファベット順にソートするための関数です。 –

+0

確かに、私は見落とした – molbal

+0

何らかの理由でアソートと通常の並べ替え私のために動作しませんでした。 Rで始まるユーザー名は、Kで始まるユーザー名の前にまだ表示されていました。@molbalによるusortが実際に試しました。 – Xfact