按数据库中的字符串对数组排序

时间:2018-07-23 10:02:25

标签: php arrays sorting

我有类似数组

$dashboard = array('amount' => 'Przypis (z anulacjami)', 'incaso' => 'Inkaso', 'commission' => 'Prowizja', 'contracts' => 'Kontrakty', 'contracts1' => 'Kontrakty kwartalne', 'contracts2' => 'Megakonkurs', 'unpaid' => 'Nierozliczone polisy gotówkowe', 'statuses' => 'Akredytacje');

我从db排序键中得到了

contracts2,incaso,commission,contracts,contracts1,amount,unpaid,statuses

我想从Dashboard数组中排序数组或为此键附加值并获取

array('contracts2' => 'Megakonkurs',  'incaso' => 'Inkaso', 'commission' => 'Prowizja', 'contracts' => 'Kontrakty', 'contracts1' => 'Kontrakty kwartalne','amount' => 'Przypis (z anulacjami)', 'unpaid' => 'Nierozliczone polisy gotówkowe', 'statuses' => 'Akredytacje');

我正在寻找最佳解决方案。我可以通过foreach做到,但是我认为有更好的方法。谢谢:)

2 个答案:

答案 0 :(得分:1)

$dashboard = array('amount' => 'Przypis (z anulacjami)', 'incaso' => 'Inkaso', 'commission' => 'Prowizja', 'contracts' => 'Kontrakty', 'contracts1' => 'Kontrakty kwartalne', 'contracts2' => 'Megakonkurs', 'unpaid' => 'Nierozliczone polisy gotówkowe', 'statuses' => 'Akredytacje');

$order = explode(',', 'contracts2,incaso,commission,contracts,contracts1,amount,unpaid,statuses');

$ordered_array = array_merge(array_flip($order), $dashboard);

信用(以及完成同一任务的两种其他方法):https://www.designcise.com/web/tutorial/how-to-sort-an-array-by-keys-based-on-order-in-a-secondary-array-in-php

答案 1 :(得分:0)

如果要按键排序,可以使用ksort(),如下所示:

$dashboard = array('amount' => 'Przypis (z anulacjami)', 'incaso' => 'Inkaso', 'commission' => 'Prowizja', 'contracts' => 'Kontrakty', 'contracts1' => 'Kontrakty kwartalne', 'contracts2' => 'Megakonkurs', 'unpaid' => 'Nierozliczone polisy gotówkowe', 'statuses' => 'Akredytacje');
ksort($dashboard);

Demo

如果要按值排序,请使用asort()