別の配列で指定された特定の順序で配列値を並べ替える

ウォルターヌニェス

私は正しい順序であるこの配列を持っています:

$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"
}

これを使おうとしていますが、うまくいきません。2番目のパラメーターは整数である必要があるため、エラーが発生します。

$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または数値ドキュメントによる順序:

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
アンドレアス

orderdocをループし、preg_grepを使用して、同じ文字で始まるすべての配列アイテムを取得します。
次に、返された配列を並べ替えて、結果の配列にマージします。

$orderDoc = array("ORT", "TRI", "CONT", "RMI");

$FindDoc= array("RMI0000191","ORT0000379","ORT0000391","ORT0000392","ORT0000390","CONT0000274","CONT0000275","RMI0000192","ORT0000391");

$result =[];
foreach($orderDoc as $doc){
    $temp = preg_grep("/^". preg_quote($doc) . "/", $FindDoc);
    sort($temp);
    $result = array_merge($result, $temp);
}

var_dump($result);

$ result:

array(9) {
  [0]=>
  string(10) "ORT0000379"
  [1]=>
  string(10) "ORT0000390"
  [2]=>
  string(10) "ORT0000391"
  [3]=>
  string(10) "ORT0000391"
  [4]=>
  string(10) "ORT0000392"
  [5]=>
  string(11) "CONT0000274"
  [6]=>
  string(11) "CONT0000275"
  [7]=>
  string(10) "RMI0000191"
  [8]=>
  string(10) "RMI0000192"
}

https://3v4l.org/eqUBv

注意:これにより、アレイからの重複が保持されます。
削除する必要があるとは言いませんが、削除する場合は、$ resultにtempをマージする前にarray_unique()を追加するだけです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

別の配列の順序で配列を並べ替える

分類Dev

名前の配列を特定の順序で並べ替える

分類Dev

配列を特定の順序で並べ替える

分類Dev

配列を特定の順序で並べ替える

分類Dev

PHPは、別の配列で定義された順序に従って配列を並べ替えます

分類Dev

配列のコピーや順序の変更を行わずに、指定された順序で配列を並べ替える

分類Dev

javascript-別の配列の順序で配列を並べ替える

分類Dev

他の配列の値の順序で配列を並べ替える

分類Dev

配列を別の配列と同じ順序で並べ替える

分類Dev

別の配列の一致する値の順序でnumpy配列を並べ替える

分類Dev

別の配列で定義された並べ替え順序に従って、配列を所定の位置に並べ替えます

分類Dev

構造化されたNumpy配列を複数の列で異なる順序で並べ替える

分類Dev

指定された要素で配列の配列を並べ替える方法は?

分類Dev

値による順序での配列の並べ替え

分類Dev

JS:配列で指定された順序を維持しながら、2つの異なるプロパティでJSON配列を並べ替えます

分類Dev

より次元のある配列を特定の順序で並べ替える

分類Dev

別の配列の値で配列を並べ替える

分類Dev

マングース:配列を別の順序で並べ替える

分類Dev

別の方法で並べ替えられた配列を並べ替える

分類Dev

Javascriptで指定された不完全な順序の配列でオブジェクトの配列を並べ替えます

分類Dev

別の配列の並べ替え順序に基づいて複数の配列を並べ替えるにはどうすればよいですか?

分類Dev

辞書式順序で並べ替えられた配列に最初に別の配列を追加するにはどうすればよいですか?

分類Dev

numpyで、配列を同じ順序で別の配列と並べ替える方法は?

分類Dev

文字列配列を特定の文字列値で並べ替える

分類Dev

CUDA:推力を使用して別の配列で定義された順序に従って配列を並べ替えます

分類Dev

特定の順序で並べ替える方法-配列のプロトタイプ(値や名前ではなく)

分類Dev

別の配列に基づいて複数の配列を並べ替える並べ替え順序

分類Dev

別の配列の並べ替え順序に基づいて配列を並べ替える

分類Dev

Ruby:特定のキーの特定の順序でハッシュの配列を並べ替える方法

Related 関連記事

  1. 1

    別の配列の順序で配列を並べ替える

  2. 2

    名前の配列を特定の順序で並べ替える

  3. 3

    配列を特定の順序で並べ替える

  4. 4

    配列を特定の順序で並べ替える

  5. 5

    PHPは、別の配列で定義された順序に従って配列を並べ替えます

  6. 6

    配列のコピーや順序の変更を行わずに、指定された順序で配列を並べ替える

  7. 7

    javascript-別の配列の順序で配列を並べ替える

  8. 8

    他の配列の値の順序で配列を並べ替える

  9. 9

    配列を別の配列と同じ順序で並べ替える

  10. 10

    別の配列の一致する値の順序でnumpy配列を並べ替える

  11. 11

    別の配列で定義された並べ替え順序に従って、配列を所定の位置に並べ替えます

  12. 12

    構造化されたNumpy配列を複数の列で異なる順序で並べ替える

  13. 13

    指定された要素で配列の配列を並べ替える方法は?

  14. 14

    値による順序での配列の並べ替え

  15. 15

    JS:配列で指定された順序を維持しながら、2つの異なるプロパティでJSON配列を並べ替えます

  16. 16

    より次元のある配列を特定の順序で並べ替える

  17. 17

    別の配列の値で配列を並べ替える

  18. 18

    マングース:配列を別の順序で並べ替える

  19. 19

    別の方法で並べ替えられた配列を並べ替える

  20. 20

    Javascriptで指定された不完全な順序の配列でオブジェクトの配列を並べ替えます

  21. 21

    別の配列の並べ替え順序に基づいて複数の配列を並べ替えるにはどうすればよいですか?

  22. 22

    辞書式順序で並べ替えられた配列に最初に別の配列を追加するにはどうすればよいですか?

  23. 23

    numpyで、配列を同じ順序で別の配列と並べ替える方法は?

  24. 24

    文字列配列を特定の文字列値で並べ替える

  25. 25

    CUDA:推力を使用して別の配列で定義された順序に従って配列を並べ替えます

  26. 26

    特定の順序で並べ替える方法-配列のプロトタイプ(値や名前ではなく)

  27. 27

    別の配列に基づいて複数の配列を並べ替える並べ替え順序

  28. 28

    別の配列の並べ替え順序に基づいて配列を並べ替える

  29. 29

    Ruby:特定のキーの特定の順序でハッシュの配列を並べ替える方法

ホットタグ

アーカイブ