Standard PHP Library(SPL) データ構造編

※この記事は読者によって投稿されたユーザー投稿です:
  • 編集部の見解や意向と異なる内容の場合があります
  • 編集部は内容について正確性を保証できません
  • 画像が表示されない場合、編集部では対応できません
  • 内容の追加・修正も編集部では対応できません

ヒューマンリソシア株式会社はコラム「Standard PHP Library(SPL) データ構造編」を公開しました。
SPLに存在する「データ構造用のクラス」について学んでいきましょう。
まずは、PHPに寄らない、一般的な概念としての「データ構造」を整理してみます。

色々と異論もあろうかと思いますが、とりあえず以下程度を想起してみましょう。

配列
スタック
キュー
連想配列
連結リスト(双方向リスト)
循環リスト(双方向循環リスト)
木構造
グラフ
なお片方向系(片方向リスト、片方向循環リスト)は、メモリ等がよっぽどタイトでないかぎりは最近「双方向」で代用されることが多いかと思うので、一端オミットいたします。

さて。
まずPHPは「配列を、言語構造としてもっています」が、実際には中の実装は「ハッシュによる連想配列+リスト」になります。
ですので、例えば通常の数字の添え字配列を「$any_array[5]」なんてアクセスをしていて、例えばこれがC言語だと「any_arrayの型をチェックしてポインタ演算をして+5の位置にある情報」になるのですが、PHPの場合は連想配列なので「5という値をhashしたところにある情報」になります。
また一方で「+リスト」なので、連想配列にもかかわらず「順番を保持している」という、他言語の連想配列になれていると「…なにごと?」と思うような状況を生み出します。

実際問題、プログラムで一番よく使うデータ構造は配列と連想配列では、確かに、あるのですが。
とはいえ別のデータ構造も色々と有益だったりしますわけで、そういった時にSPLデータ構造を思い出すと「上質を知るPHPer」になれるわけです。

この続きは以下をご覧ください
http://resocia.jp/column/287/

この記事が役に立ったらシェア!
メルマガの登録はこちら Web担当者に役立つ情報をサクッとゲット!

人気記事トップ10(過去7日間)

今日の用語

NDA
Non-Disclosure Agreementの略。一般には「秘密保持契約」と ...→用語集へ

インフォメーション

RSSフィード


Web担を応援して支えてくださっている企業さま [各サービス/製品の紹介はこちらから]