2016-04-12 11 views
0

問題があります。配列の次の要素よりも大きい配列の要素を指摘する必要があるコードを書きました。 出力画像に配列$ arrには要素が70だけ含まれている必要があります。これは$ar[294]=70 > $ar[295]=69です。しかし、コードは何らかの理由で$ arrに何らかの要素を追加していますが、これは文($ar[$i]>$ar[$i+1])を満たしていません。if節が正常に動作しない

これはどのように可能ですか?

$ar = array(); 
for ($i=0; $i < sizeof($retcikonacno); $i++) { 
    if ($retcikonacno[$i]["n2"] >= 1001 && $retcikonacno[$i]["n2"] <= 1013) { 
     array_push($ar, $retcikonacno[$i]["vpont"]); 
    } 
} 

echo "ar="; 
echo "</br>"; 
print_r($ar); 

echo "</br>"; 
echo "-------------------"; 
echo "</br>"; 
echo "-------------------"; 

echo "</br>" . "</br>"; 

$arr = array(); 

$size = sizeof($ar)-1; 
for ($i=0; $i < $size; $i++) { 
    if ($ar[$i] > $ar[$i+1]) { 
     array_push($arr, $ar[$i]); 
    } 
} 

echo "arr="; 
echo "</br>"; 
print_r($arr); 

OUTPUT:

[Output

+1

今後のSO訪問者のために保存されるように、ここにコードを投稿してください。 –

+0

追加情報が必要な場合はお知らせください。 –

+0

あなたの質問とあなたのコードは一致しません。あなたのコードによると、13のアイテムがあります。 –

答えて

1

私は私の師匠と相談して、彼はこの問題を解決しました。

彼は、php(誤って不明な理由で)が配列の実際の値ではなく$ ar [$ i]と$ ar [$ i + 1]のメモリ位置を読み取る可能性があると述べました。したがって、if節は有効ではありません。

SOLUTION: 代わりに私がarray_pushで行ったように配列$ ARを作成する($ AR、$ retcikonacno [$ i]の[ "vpont"])、彼は関数INTVALを使用し、 ので、それはINTVAL array_push($のAR、でした($ retcikonacno [$ i] ["vpont"]))。これにより正しい値の配列が作成され、claseがうまくいきました。

関連する問題