У меня есть этот массив в правильном порядке:
$orderDoc = array("ORT", "TRI", "CONT", "RMI");
Эти документы находятся в разных таблицах нескольких серверов и базы данных.
В конце поиска документов, которые я обычно получаюмассив со следующей структурой, но с элементами в беспорядке:
// имитируемая переменная:
$FindDoc= array("RMI0000191","ORT0000379","ORT0000391","ORT0000392","ORT0000390","CONT0000274","CONT0000275","RMI0000192","ORT0000391");
Ouput:
array(10) {
[0]=>
string(10) "RMI0000191"
[1]=>
string(10) "ORT0000379"
[2]=>
string(10) "ORT0000391"
[3]=>
string(10) "ORT0000392"
[4]=>
string(10) "ORT0000390"
[5]=>
string(11) "CONT0000274"
[6]=>
string(11) "CONT0000275"
[7]=>
string(10) "RMI0000192"
[8]=>
string(10) "ORT0000394"
[9]=>
string(10) "TRI0000170"
}
Я пытаюсь использовать это, ноэто не работаетЯ получаю сообщение об ошибке, поскольку второй параметр должен быть целым числом:
$FindDoc=asort($FindDoc,$orderDoc );
После исследования ни одна из этих функций не работает:
PHP - Sort Functions For Arrays
In this chapter, we will go through the following PHP array sort functions:
sort() - sort arrays in ascending order
rsort() - sort arrays in descending order
asort() - sort associative arrays in ascending order, according to the value
ksort() - sort associative arrays in ascending order, according to the key
arsort() - sort associative arrays in descending order, according to the value
krsort() - sort associative arrays in descending order, according to the key
https://www.w3schools.com/php/php_arrays_sort.asp
Как получить правильный порядок значений?
Пример того, что ожидалось, порядок по $ orderDoc ordes и По числовому документу:
array(10) {
[0]=>
string(10) "ORT0000379"
[1]=>
string(10) "ORT0000390"
[2]=>
string(10) "ORT0000391"
[3]=>
string(10) "ORT0000392"
[4]=>
string(10) "ORT0000394"
[5]=>
string(10) "TRI0000170"
[6]=>
string(11) "CONT0000274"
[7]=>
string(11) "CONT0000275"
[8]=>
string(10) "RMI0000191"
[9]=>
string(10) "RMI0000192"
}
ОбновлениеЯ пытаюсь использовать пользовательскую функцию, но получаю некоторые ошибки:
foreach ($FindDoc as $StructureMember) {
$key = array_search($StructureMember, function ($StructureMember, $orderDoc ) {
return (strpos($StructureMember, $orderDoc ));
});
$result[$key] = $StructureMember;
}
$FindDoc = $result;
вывод:
Warning: array_search() expects parameter 2 to be array, object given in C:\xampp\htdocs\class\class.docinfo.php on line 15