私のデータベースから取得されているいくつかのデータを扱っています。これは2次元*配列に配置され、データベース内のデータのIDに基づいてインデックスを手動で設定します。PHP:配列の次の値と前の値を見つける "欠落している"インデックスがある場合
* 2次元以上ですが、2次元で作業する必要があります。私は、したがって、問題のアレイは、2次元作り、「結果」、それの一部で作業する必要があり、このアレイ内
Array
(
[error] => Boolean(false)
[results] => Array
(
[1] => Array
(
[0] => title1
[4] => title2
)
[3] => Array
(
[0] => title3
[1] => title4
[2] => title5
)
[4] => Array
(
[0] => title6
[1] => title7
[3] => title8
)
)
)
:
このは、問題の配列です。
私のスクリプトでは、いくつかのブードー・マジックが起こり、最初の配列のインデックスと2番目の配列のインデックスが伝えられ、次に2番目の配列から値が引き出されます。
「title5」という値を取得したいとします。私のスクリプトは、インデックス3を使用してインデックス2を使用する必要があると教えてくれます。
私はこれをすべて実行しましたが、これは私が立ち往生している次の部分です。試してみてください。
「title5」を取得した後、次のアイテムと前のアイテムのインデックスを取得したいので、この場合は「title4」と「title6」の両方を検索します。以前の値がない場合(最初に "title1"を引っ張ったとします)、偽のブール値のように、これを特定する方法が必要です。同様に、「次の」値も存在しない場合も同様です。例えば私が意味するインデックスを取得することで
:title4 = 3 & 1
とtitle6 = 4 & 0
誰もが、私はこれをやって行くべきか任意のアイデアを持っていますか?私は必ずしも私のために仕事をする人を探しているわけではありませんが、いくつかの指針は非常に高く評価されます。その間、私は実験を続けます。ありがとう!
注:
- タイトル実際
title1
と呼ばれていない、title2
などだから、僕は数をデクリメントして検索を行うことができません。 nullの次へ前へ場合は、その後、あなたのインデックスは、その後、それらの最初/最後のインデックスがそれぞれあり、そうでない場合、最終的にはそう$prev = null; $last_was_value = false; $next = null; foreach ($foo['results'][$index1] as $index => $value) { if($value == $some_result_value) { $last_was_value = true; } elseif($last_was_value == true && $next == null) { $next = $index; } elseif($last_was_value == false) { $prev = $index; } }
:
次のインデックスと前のインデックスを探していると、正確に何を意味していますか? $ results [3] [2]にあるタイトル5を検索すると言っていますか? $ results [3] [1]と$ results [4] [0]に値があることを知りたいでしょうか?私はあなたのための簡単なスクリプトを叩くことができます私はあなたが探しているものを理解していることを確認したいです:) – DaOgre
正確に。 '$ results [3] [2]'にタイトル5があると、 '$ results [3] [1]'と '$ results [4] [0]'に値があることを知りたいと思います。私はそれらの値が何であるかを知る必要はありませんが、私はインデックスを知る必要があります。 –