問題タブ [spl]

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 に答える
358 参照

php - マルチレベルのArrayObject()を反復処理して、画面上の階層ビューを出力します

私は出力が非常に複雑なArrayObject構造を持っています。これは、複数のレベルの関係で構成できます。たとえば、親->子->子->子などです。

このような構造は、foreach、for、またはwhileループを使用する場合の操作が非常に複雑です。SPLイテレータを調べましたが、これは使用できると思います。私は全体の概念に少し慣れていないので、複数のレベルをループすることについてのアドバイスは好評です。

ありがとう

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

php - RecursiveIteratorIterator で RecursiveArrayIterator を実装する場合の配列オブジェクト変数へのアクセス

私は次を使用してループしている大きなarrayObjectを持っています:-

配列内の特定のキーにアクセスするにはどうすればよいですか? $key と $val を echo することでそれらにアクセスできますが、アクセスしたい特定のキーがあります。$key[''] を呼び出そうとすると、キー名の最初の文字が取得されます。

編集 1

いくつかのサンプル データ (多くの異なるサブ子も存在する可能性があります):

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

php - 通常の配列の代わりに SPL ArrayObject、ArrayIterator、RecursiveArrayIterator を使用する利点は何ですか?

ArrayIterators から PHP SPL を学び始めました。通常の配列の代わりに SPL ArrayObject、ArrayIterator、RecursiveArrayIterator を使用する利点は何ですか?

a) SPL イテレータを使用したループはメモリ使用量を削減すると聞きました (しかし、なぜですか?)。メモリ使用量をどのように削減できるかがわからないため、これを信じるかどうかはわかりません。

b) RecursiveArrayIterator について話すと、コード行を節約できる場合があると言えます (2+ ではなく 1 つの foreach 構造を使用しています (配列の次元によって異なります))。

おそらく、私の質問は誰かにとって非常に簡単に思えるかもしれませんが、SPL に関する情報やドキュメントが少なすぎます。

ありがとうございました

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

php - PHP RecursiveIterator トラバース

フォームを表す構造があり、RecursiveIterator を使用して反復したいと考えています。問題は、これが最上位の質問のみを返すことです。私は何を間違っていますか?

全体の形:

質問:

反復:

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

php - PHPイテレータの効果的な検索

私はカスタムイテレータを持っています(正確にはTokenIteratorで、トークン化されたphpコードを繰り返します)。アイテムは単純なオブジェクトです(いくつかの正規化メソッドが追加された「プロパティバッグ」)

検索機能を実装する必要があります。これは、1。1つのイテレーターに別のイテレーターが含まれているか2. 2つ(またはそれ以上)のイテレーターが重複しているか(パラメーターがいくらかあるか)を検出する必要があります。

現在、私は(1)-O(NxM)ダブルループ検索にナイーブなアプローチを使用していますが、(2)はまだ実装されていません。

本当にスマートな文字列検索アルゴリズムの再実装を開始する前に、その効果的な実装が存在するかどうかを知りたいですか?たぶん、再利用するために何かがフレームワークやジェネリックライブラリの奥深くに埋もれているのでしょうか?そして、どのアルゴリズムがここで最も適しているでしょうか?

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

php - RecursiveIteratorIterator を使用したリストの最初と最後の要素

私は、基本的にネストされたとタグのリストであるRecursiveIteratorIteratorをループするために使用しています:Zend_Navigation<ul><li>

$page現在反復されている要素 ( ) が現在のレベルの最初の要素か最後の要素かを判断する方法は? これらの要素にクラス属性を
追加する必要があります。firstlast

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

php - ArrayAccess はどのように機能しますか?

、 、などIterator、SPL から PHP の一般的に使用されるインターフェイスについて読んでいます。しかし、私はそれらがどのように機能するかを正確に理解していません。CountableArrayAccess

[]それらの実装は、配列演算子のオーバーロードなど、PHP のコア機能を変更しますか?

また、下位レベルの言語と同じ方法で他の演算子をオーバーロードする機能を提供する Operator 拡張機能についても読みました。Operator 拡張機能は明らかに PHP コアを変更するためArrayAccess、舞台裏で同じように動作するのではないかと考えていました。

私はいじくり屋なので、中身を知らずに何かを使うのは難しいと思います。

0 投票する
5 に答える
30037 参照

php - 親のコンストラクターを呼び出すときに致命的なエラーが発生するのはなぜですか?

SPL(標準PHPライブラリ)クラスの1つを拡張していますが、親のコンストラクターを呼び出すことができません。これが私が得ているエラーです:

致命的なエラー:コンストラクターを呼び出せません

SplQueueのドキュメントへのリンクは次のとおりです: http ://www.php.net/manual/en/class.splqueue.php

これが私のコードです:

親のコンストラクターを呼び出せない理由は何ですか?

0 投票する
4 に答える
14568 参照

php - PHP 5.x には、ある種の HashSet または Set クラスがありますか?

私はHashSetsArrayListsおよびその他のJava に慣れていますCollections。しかし、私は現在PHPプロジェクトに取り組んでいます。

セットを作成し、そのセットにオブジェクト (この場合は文字列) を入力する必要がありますが、セットには各オブジェクトを 1 回しか含めることができません。さらに、特定のオブジェクトが存在する場合、最終的にこのセットから削除したいと考えています。これは、Java コレクション クラスを使用すると非常に簡単です。しかし、どうすればPHPでそれを実装できますか?

array()私が見逃している方法はありますか?PHP 5.3 を使用しています。

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

php - PHPオートローダーとUnixの大文字と小文字を区別するファイルシステム

私はindex.phpを持っています

_controller / Autoloader.php

そして、Gold_MySQL.classを含むファイル_controller/MySQL.phpがあります。Windowsシステムでは、このコードは機能し、MySQL.phpを含みますが、このコードをホストすると機能しません((

編集

Unixが任意のファイルを参照できるようにするにはどうすればよいですか?Zendには小文字のファイルはありません。