この質問は、 「この質問」からのフォローアップ質問です。codeigniter コードは、データベース レコードセットを次の配列として返します。
Array
(
[0] => stdClass Object
(
[user_id] => NLK32439
[first_name] => sdn
[last_name] => hf]zL
[email_address] => user1@hotmail.com
[mobile_number] => 9841349349
[description] => g]kfn
[date_joined] => 09-AUG-12
[status] => 1
[username] => user1
[userpassword] => 691f9298642af07c2d6ea8fef56074201e077b34
)
[1] => stdClass Object
(
[user_id] => NLK94358
[first_name] => alag
[last_name] => k|wfg
[email_address] => user2@gmail.com
[mobile_number] => 823472384723
[description] => g]kfn
[date_joined] => 09-AUG-12
[status] => 1
[username] => user2
[userpassword] => 691f9298642af07c2d6ea8fef56074201e077b34
)
[2] => stdClass Object
(
[user_id] => NLK32437
[first_name] => ;lag
[last_name] => %]qL
[email_address] => user3@msn.com
[mobile_number] => 9851112412
[description] => g]kfn
[date_joined] => 08-AUG-12
[status] => 1
[username] => user3
[userpassword] => 691f9298642af07c2d6ea8fef56074201e077b34
)
[3] => stdClass Object
(
[user_id] => NLK32435
[first_name] => clgn
[last_name] => zdf{
[email_address] => user4@msn.com
[mobile_number] => 984134354
[description] => g]kfn
[date_joined] => 08-AUG-12
[status] => 1
[username] => user4
[userpassword] => 0e025eade868b4b481f41ff7449bc1967261e170
)
)
私がやりたいのは、特定の条件に基づいて「first_name」で配列をソートすることだけです。これまでの私のphpコードは-
<?php
usort($array, function ($a, $b) {
static $order = array('c', 's','a',';', 'L');
return array_search($a->first_name, $order) - array_search($b->first_name, $order);
});
?>
私の意図は、'c' で始まる first_name が 1 番目、's' が 2 番目、'a' が 3 番目、';' が来るように配列をソートすることです。4番目に来ます。
しかし、上記のコードは期待どおりに機能しません。シーケンスでレコードを返しています:
's','a',';','c'
シーケンスで返されるはずです
'c', 's','a',';'
私はカスタム Devnagari フォントを使用しているため、キーボードの各アルファベットは Devnagari の特定の文字を表しています。したがって、デヴナガリでは、c が最初に来て、s が 2 番目に続きます。
どんな助けでも大歓迎です。前もって感謝します