問題タブ [arrayiterator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
636 参照

php - ArrayIterator と ArrayObject の flags パラメータは何をしますか?

PHP のコンストラクターには、次のように文書化されArrayIteratorArrayObjectいるflagsパラメーターがあります。ArrayObject::setFlags()

ArrayObject::STD_PROP_LIST

オブジェクトのプロパティは、リスト (var_dump、foreach など) としてアクセスした場合、通常の機能を持ちます。

ArrayObject::ARRAY_AS_PROPS

エントリはプロパティとしてアクセスできます (読み取りおよび書き込み)。

ArrayIterator::setFlags() のドキュメントも同様です (違いは間違いです)。

これで、2 番目のフラグをよく理解できました。これにより、プロパティ アクセスと->配列アクセスが可能になり[]ます。

しかし、私は頭を包むことができませんArrayObject::STD_PROP_LIST。私がテストした限り、このフラグの有無にかかわらずまったく同じように動作しますvar_dumpforeachここで何が欠けていますか?

0 投票する
3 に答える
2322 参照

jquery - それぞれの内部のjquerysetTimeout

私はこれに似たコードを持っています、それはいくつかの画像の中で動きます...それは動作しますがタイマーを尊重していないようです

0 投票する
1 に答える
1460 参照

php - PHP口ひげでキーを持つ複雑な配列を消費する

私は配列の次の構造を持っていますarr

現在、私はデータを次のように渡しています。

in mustache テンプレートでは、次のように使用しています。

それは私widthに正しく与えます。しかし今、私keysはその配列(1最初と2番目のもの)と、キー3内の要素の総数が必要です。pages

この口ひげはどうすればいいですか?

0 投票する
1 に答える
138 参照

php - PHP foreachは配列で反復をスキップします

「未定義のインデックス」を受け取ったときに、いつでもphp foreachで反復処理をスキップしたい。これまでの私のコードは次のとおりです。

ifis_null構文がない場合、コードは壊れますが、cover_photo インデックスが定義されていないというエラーが表示されます (これは通常の動作です)。少なくともエラーを表示できなければ、それで十分です。

0 投票する
2 に答える
7859 参照

php - PHP ArrayObject / ArrayIterator : 例による概念

PHP のオブジェクト配列の概念を理解しようとしています。最新の状態では、通常の配列を使用してレコードのリストをループし、テーブルに表示していました。

Object を使用してこれを実行できることはわかっていますが、その方法がよくわかりません。

データベースから入力された関連値を持つフィールドを表すすべてのプロパティを持つ単一の Object インスタンスの概念を理解しています。これは次のように呼び出すことができます。

今、私が理解したいこと、そして簡単な答えを見つけることができないのは、たとえば、1つのページに表示したいユーザーのリストを処理する方法です。ArrayObject、ArrayIterator などがあるのを見てきましたが、それらがどのように機能するかを理解できないので、上記をどのように達成できるかのいくつかの例で誰かがそれを説明しようとすることができれば、それは大歓迎です。

私が探しているのは、要素のリストを含むオブジェクトです。これは、次のようにループできます (可能な場合)。

ありがとう。

0 投票する
2 に答える
2039 参照

php - ArrayIterator または ArrayObject を implode で動作させるにはどうすればよいですか?

私は ArrayIterator でいくつかの問題を抱えています (実際、ArrayObject でも同じ問題です)。

すべての 99% で、拡張 ArrayIterator は配列のように動作し、うまく機能しています。

残念ながら、implode() は ArrayIterator (または ArrayObject) が与えられるのを好みません。

拡張された ArrayIterator によって実装する他のクラスや、オーバーライドする他のメソッドを示唆しているドキュメントはどこにもありません。

誰でもこれを機能させる方法を提案できますか? (注: implode を使用するたびに配列にキャストすることは解決策ではありません。この配列のようなオブジェクトが配列として正確に機能し、それを使用してコードを認識/ケア/キャストする必要がないためです)

0 投票する
1 に答える
94 参照

php - クラスによる PHP の最適化

codeigniter にプロジェクトがありますが、関連性がありません。

(販売ゾーン、価格、モデル...) などの検索基準を使用して、多くの外部サーバー車内を検索する必要があります。

xml で応答する外部サーバーに xml でクエリを作成し、foreach プロバイダー (外部サーバー) のモデルを作成しました。

コントローラーに各モデルの検索基準を渡し、次のようにネストされた配列を返します。

メイン配列には、多くのキーと値を持つ 3 つの配列が含まれています。各オプションは で車をcar_id参照し、各バリアントは で車を参照しcar_idます。
モデルごとにこの配列を返すと、作成した配列は次のように標準であるため、マージを行います。

これで、プロバイダーのすべての車に大きな配列標準ができました。検索基準に依存するため、内部に 3 つの配列を含む非常に大きな配列になる可能性があります。

私の質問は次のとおりです。私のような大きなネストされた配列 final を使用すると、メモリの問題や速度の低下が発生する可能性がありますか?

spl クラスを使用する方が良いですか? のようArrayIteratorなものですか?最終的な配列をコントローラーに渡す必要があり、その後、それをビューに渡す必要があるためです。バックボーンを使用してすべてを印刷するため、ページを印刷する前に各配列を json に変換します。

しかし、私の質問は次のとおりです。大きな配列をネストする方が良いですか、それともこのすべてのデータを管理するための spl クラスがありますか? (必要なのは、データを格納するためのコンテナーだけであり、その後 json に変換し、次のようなチェックを行います。同じ車を削除するか、不要なオプションをチェックまたは検索する必要があります)。

大きな配列は私の目標に適していますか?

0 投票する
0 に答える
599 参照

php - mysqlからの巨大な配列を反復するPHP

クライアントの大規模なデータベースの移動を処理しています。処理してから別のテーブルに挿入する必要がある大量のデータを取得するクエリがあります。元のクエリは、複数のテーブルを結合して必要な形式にすることを組み合わせたものです。

独自のデータベース クラスを使用して、クエリの結果全体 (主に文字列である 30 列のデータを含む約 600,000 行) を配置します。この配列は別のクラス (ArrayIterator を拡張する) に渡され、何らかの操作を行ってからターゲット データベース テーブルに挿入されます。

小さなデータセットを非常にうまく処理でき、非常に高速であることがわかっています。しかし、50 万行を超えるこのインポートでは、ますます遅くなっているようです。過去の輸入処理にかかった時間から推定残り時間を計算してみましたが、過去3時間は2時間雨が降っていたようです。

最初は 1 秒あたり 100 程度の処理でしたが、現在は 2 ~ 3 です。

これが私たちのコードの例です:

イテレータ クラスのデモ:

徐々に減速するためのアイデアはありますか?その効率を改善するための提案はありますか?

0 投票する
1 に答える
55 参照

arrays - D でカスタム オブジェクトの配列を反復処理する

D でカスタム オブジェクトの配列内の要素を反復処理したり、要素にアクセスしたりする方法を作成する際に問題が発生しています。

次の方法で配列を作成しました。

しかし、次の方法で配列内の個々の要素にアクセスしようとすると:

エラーが発生します:

C/C++ でコーディングを行うのは本当に久しぶりで、これが D での初めての試みです。何をすべきか正確にはわかりません。[] 演算子をオーバーロードするにはどうすればよいですか?