次のような MySQL から取得したデータセットがあります。
配列
(
[0] => 配列
(
[ビュー] => 14
[タイムスタンプ] => 06/04
[views_scaled] => 4.9295774647887
[unix_time] => 1239022177
)
[1] => 配列
(
[ビュー] => 1
[タイムスタンプ] => 19/04
[views_scaled] => 0.35211267605634
[unix_time] => 1240194544
)
...
...
...
) 1
(後処理されます。「timestamp」は実際には以前のタイムスタンプでしたが、とにかく問題ではありません)
配列は に保存され$results、コードの途中で次のようにします。
$results = array_merge($results, $new_days);
$a = $結果;
foreach ($results as $row)
{
$unix_time[] = $row['unix_time'];
}
$b = $結果;
問題: $aと$bは両方とも異なります。最初のものは想定どおりの配列を示し、2番目のものは同じcount()ですが、4番目の要素は最後の要素から複製されています。私が知る限り、私は参照によって何も渡していないので、$results変更するつもりはありません (おそらくポインターですが、コンテンツではありません)。Mac OS X 10.5.2 で PHP 5.2.4 を使用しています。
明らかな質問:これはどういうわけか意図した動作ですか、バグですか、それともここで何か間違ったことをしていますか? (ブール値の答えではありません;)
編集:興味を持っていただきありがとうございます。追加のコードをどれだけ投稿する必要があるか正確にはわかりません.DBからデータを取得し
foreach、タイムスタンプを解析して新しい配列を構築することを除いて、以前はあまりしません( $new_days)欠落している日。これはすべて正常に機能しています。
このコードは、私が以前に投稿したコードの後にあります。
array_multisort($unix_time, SORT_ASC, $results);
$days = implode('|', array_pluck('timestamp', $results));
$views = implode('|', array_pluck('views', $results));
$views_scaled = implode(',', array_pluck('views_scaled', $results));
(array_pluck()は、典型的な DB ダンプ データセットの列から配列を生成するカスタム関数です)
編集 2:ありがとうございます。ここに完全なスニペット
$resultsと配列からの出力があります$a($bコードのコメントでも参照されています)。