次のような 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
コードのコメントでも参照されています)。