別の配列のコンテンツの正確な順序で連想配列を並べ替える必要があります。配列は、2 つの個別の sql-requests (後述) によって取得されます。リクエストを 1 つのリクエストにまとめることができなかったため、2 番目の配列を最初の配列の順序に並べ替える必要があります。
これらは配列です:
#Array which contains the id's in needed order
$sorting_array = array(1,2,3,8,5,6,7,9,11,10...);
#Array which contains the values for the id's, but in order of "id" ASC
$array_to_sort = array(
array("id" => "1", "name" => "text1", "help" => "helptxt2");
array("id" => "2", "name" => "text2", "help" => "helptxt2");
);
SQL-Queries:
$sorting_array の SQL-Ouery:
(db-field 'conf' は "text" として設定されています。おそらくこれは私の問題なので、最初にエントリを爆発させて内破させてから、次のクエリ)。
$result = sql_query("select conf from config where user='me'", $dbi);
$conf = sql_fetch_array($result, $dbi);
$temp = explode(',', $conf[0]);
$new = array($temp[0], $temp[1], $temp[2], $temp[3],$temp[4],
$temp[5], $temp[6], $temp[7], $temp[8], $temp[9],
$temp[10], ...);#Array has max 30 entries, so I count them down here
$sorting_array = implode(',', $new);
$array_to_sort の SQL-Ouery:
$result = sql_query("SELECT id, name, helptxt
FROM table
WHERE id IN ($sorting_array)
AND language='english'");
while ($array_to_sort[] = mysql_fetch_array ($result, MYSQL_ASSOC)) {}
array_pop($array_to_sort);#deleting the last null entry
次のように $array_to_sort にアクセスして、コンテンツを 1 つずつ表示できます
。
echo $array_to_sort[0]["id"];
echo $array_to_sort[0]["name"];
echo $array_to_sort[0]["helptxt"];
しかし、それは「id」ASC でソートされていますが、$sorting_array のように正確にソートする必要があります。私はいくつかのことを試しました:
while(list(,$array_to_sort) = each($sorting_array)){
$i++;
echo $array_to_sort . "<br>";
}
ID を正しい順序で表示するだけで、コンテンツは表示されません。非常に多くのことを試したので、今は少し混乱していますが、すべて同じ結果になりました。
たぶん sql-query は 1 つのステップで実行できますが、私はそれを機能させませんでした。私の検索のすべての結果は、ASC または DESC をソートする方法を示しただけで、私が望むものではありませんでした。
さらに、私は PHP と MySQL に比較的慣れていないことを告白しなければなりません。
うまくいけば、皆さんの誰かが私を軌道に戻すことができます.
よろしくお願いします。