Проблема ассоциативного массива ksort с 4 персидскими символами - PullRequest
1 голос
/ 29 октября 2019

Я работаю с ассоциативным массивом со значением ключа, ключи которого являются персидскими строками, и проблема в том, когда я использую ksort для сортировки массива. проблема в том, что процесс сортировки не влияет на четыре конкретных символа и помещает их в конец отсортированного массива. вот эти 4 символа:

گ چ پ ژ

Я думаю, это произошло потому, что 4 буквы не существуют в арабских буквах. Вот пример

$ main_array = array ("محمد" => 55, "علی" => 67, "رضا" => 90, "گلاب" => 34) после ksort он должен показать это какрезультат: رضا, علی, گلاب, محمد но результат ksort таков: رضا, علی, محمد, گلاب

Array
(
    [فولاد امیر کبیر] => ۶۵۵
    [شرکت فولاد کیان ابهر] => ۶۶۵
    [فولاد آریا ذوب] => ۶۵۶
    [گروه صنعتی فولاد یزد] => ۶۵۱
    [فولاد قائم رازی] => ۶۶۴
    [فولاد سیادن ابهر] => ۶۶۳
    [مجتمع فولاد البرز غرب] => ۶۴۹
    [شرکت فولاد سپهر ایرانیان] => ۶۶۱
    [فولاد کیان کاشان] => ۶۵۷
    [فولاد شاهرود] => ۶۵۴
    [فولاد آناهیتا گیلان] => ۶۵۹
    [نورد آریان فولاد] => ۶۴۸
    [فولاد میانه] => ۶۵۸
    [فولاد بافق یزد] => ۶۶۲
    [فولاد قزوین] => ۶۶۰
    [پرشین فولاد آریا] => ۶۵۲
    [فولاد نیشابور] => ۶۵۳
    [فولاد کویر کاشان] => ۶۵۰
    [ذوب آهن اصفهان] => ۶۴۷
)


//here is the example which ksort working properly by english chars
$myarray = array(
"reza"=>35,
"mohamad"=>56,
"nima"=>45,
"ali"=>76,
);
ksort($myarray);
print_r($myarray);

//here is the example which ksort not working properly by persian chars
$mypersianarray = array(
"علی"=>35,
"گلاب"=>56,
"رضا"=>45,
"محمد"=>76,
);
ksort($myarray);
print_r($mypersianarray);

//output
Array ( [علی] => 35 [گلاب] => 56 [رضا] => 45 [محمد] => 76 )
//which is wrong and گلاب goes at end 
...