以下、私は連想配列を解析しようとしています。PHP:配列内の2つの値を比較するための連想配列の解析
配列は次のようになります。私は、配列のすべての二つの要素に対して操作を実行したい配列を解析する場合、
ここ$array1 = [Date1 => Time1, Date2 => Time2, Date3 => Time3,……..]
。つまり、Date1Time1とDate2Time2、Date3Time3とDate4Time4などと比較します。
私はwhileループを使用して配列を解析し、その値を関数creating_detailed_array()
に渡しています。
while (list($var, $val) = each($array1)) {
if($GLOBALS['counter'] < 4) {
creating_detailed_array($var,$val);
} else {
$GLOBALS['counter'] = 1;
creating_detailed_array($var,$val);
}
}
Assumption1:私は値1
Assumption2でグローバルカウンタとして$GLOBALS['counter']
を定義している:ここでは日付1、時間1、日付2、タイム2は私が世界を考慮PHPページの上部に定義した変数ですスコープは次のとおりです。
が呼び出される関数です:今、解析がコードに初めて行われたときに、ここでの問題は、ですが、私はループが値日付2で解析する際、日付1とタイム1に保存された正しい値を取得しています
//Global Variables
$Date1 = "";
$Time1 = "";
$Date2 = "";
$Time2 = "";
function creating_detailed_array(&$var,&$val)
{
//Below I am creating variable named Var1 and Var2 dynamically to store the values of Date1 and Time1 and so on
${'Var' . $GLOBALS['counter']} = $var;
${'Var' . ($GLOBALS['counter'] + 1)} = $val;
if($GLOBALS['counter'] = 1) {
//Trying to store the values in the global variables Date1 and Time1 for future use
$GLOBALS["Date1"] = $Var1;
$GLOBALS["Time1"] = $Var2;
} else {
//Trying to save the values in global variables Date2 and Time2 for future use.
$GLOBALS["Date2"] = $Var3;
$GLOBALS["Time2"] = $Var4;
}
echo '<br> Value of Variable 1 : ' . $GLOBALS["Date1"] . 'Value of Variable 2 : ' . $GLOBALS["Time1"] . 'Value of Variable 3 : ' . $GLOBALS["Date2"] . 'Value of Variable 4 : ' . $GLOBALS["Time2"] . '<br>';
$GLOBALS['counter'] = $GLOBALS['counter'] + 2;
}
Time2の場合、Date1とTime1の値はnullに設定されます。
私はAssoc配列の最初の要素を2番目に、3番目を4番目に、などと比較したいと思います。
将来、比較のために、変数に格納されているDate1とTime1、Date2とTime2の値が必要です。しかし、それぞれの解析のために、私はそのペアのいずれかが得られるようにしています。
ここでは、グローバル変数を間違って割り当てていると思われます。
説明するのが少し複雑です。より多くの情報が必要な場合はお知らせください。私が使用しているPHPのバージョンは5.5
[次へ](http://php.net/manual/de/function.next.php)や[prev](http://php.net/manual/)のようなphpの組み込み関数を使うことができます。 de/function.prev.php)を呼び出し、foreachでこれらを繰り返します。だから、あなたはグローバルにカウンターが必要ないでしょう。 – Alex2php
何をしているのか、これは間違っています。問題をスケールダウンして、この混乱のすべてではなく必要な最終結果を表示します。 – AbraCadaver
これらの機能を提案してくれてありがとうAlex2php、phpの新機能として、これを知らなかった。もう1つ質問がありますが、これらの関数はAssoc配列の要素の「値」を返します。 Assoc配列のkey => value形式でこの関数を使って "key"を取り出す方法はありますか? –