なんて事を書いているのは先週末自分が風邪をひいてしまったからです;;
普段は、家に帰ったら即うがい・手洗い、睡眠も十分とるようにし、エアコンは極力使用しないように心がけて体調には注意するようにしているのですが、それでもやってしまいます。
でも風邪をひくと人の体ってあらためてすごいものだなと感じますね。風邪をひいてしまっても安静にして数日寝ていれば勝手に直してくれちゃいます。(まぁまだ完全には治してくれていませんが・・・w)
この時期は暑かったり寒かったりするので、体が丈夫な人も十分に気をつけてください。
またこれからは梅雨でじめじめした日が続いたりすると思いますので今まで大丈夫だった食べ物とかも出しっぱなしにするとすぐ痛んだりしちゃいますので食べ物とかも気をつけてお過ごしください。
今回はSmartyを使用して簡単にツリーを作成する方法です。
まずphpの処理で、配列のキーに親の番号、値にノードのIDを持つ配列を用意しておきます。
例)
$arrChild = array(array(1,3), array(2), array(4,6), array(), array(5),array(), array())
そしてSmartyの呼び出し用のテンプレmain.tplと再帰用のtree.tpを用意します。
main.tpl——————————-
{assign var=”id” value=”0″}
{include file=”tree.tpl”}
—————————————
tree.tpl——————————–
{foreach from=$arrChild[$id] item=id}
<処理>
{if $arrChild[$id]}
{include file=”tree.tpl”}
{/if}
{/foreach}
—————————————
これだけでどれだけ巨大なツリーでも処理が行えます。
この再帰呼び出しのキモはtree.tplの1行目の
{foreach from=$arrChild[$id] item=id}
の部分になります。
最初にこの行が呼び出されたときは$idは0が入っており、最初に
$arrChild[0]の中をforeachで回しますが、このときitemにidを指定しているのでこのループの内側では$idは$arrChild[0][0]に入っている1になります。
そして{if $arrChild[1]}を行うと中身が入っているので{include file=”tree.tpl”}が呼ばれます。
そうすると次は$idが1の状態で{foreach from=$arrChild[$id] item=id}が呼ばれ・・・
という再帰処理が行われます。
結構使えるテクだと思いますのでお試しあれ・・
タガヤっす。
先日、ウチのスタッフが言いました。
「タガヤさん、お花見しましょうよ!」
実は気になってた。気になってたよ。
ただ、オレが旗ふりしてどーすんねんと思ってたんだよ。
すばらしい。
すばらしい気付きと提案だと思ったよ。
感激した。
感激しすぎて、言った。
「みんなで企画して開催してくれたらいいじゃん♪」
今はちょこっと後悔してる。
◆
メーリングリストに投稿が。
お花見の案内のようだ。
3月30日 月曜日 13時スタート。うつぼ公園にて。
ん?
月曜日 13時スタート。
いやいやいやいや(汗)
月曜日に休むヤツは死んで良しってぐらいに思ってるよ、オレ。
週の初めの昼間っから、お花見で飲酒ですか(汗)
友人たちを誘えないじゃないか。
◆
というわけで、無理を承知でご案内いたします。
3月30日の月曜日13時から、うつぼ公園でお花見やってますんで、大したおもてなしはできませんが、お時間が許せば覗きにきてくれるとうれしいです。一緒に飲酒してくれたら、かなりの友情を感じてしまいます。
週明け月曜日はうつぼ公園へGO!!
誰もこねーだろーなー(涙)
phpプログラミングをしていて条件分岐をしたいときはifを使いますよね?
ですがループだと・while ・do while ・for ・foreach (・if & goto)と色々方法がありどれを使用していいか分からない人が多いのではないでしょうか?
私が以前見たソースでひどい例で
i = 0;
for (;i < 10;) {
i++;
}
なんてのがありました。
たしかにコレで処理としては問題ないですが、ソースが長くなったりすると変更箇所が見つけづらくなりバグの元にもなりかねません。
ifと違いこれらのループが複数用意されているのには意味があり、それぞれ長所を使い分けることによってソースを読みやすく短くできたり処理を簡単にできたりします。
簡単にですが、私がどういった時にどのループ構文を使うのかの判断材料を書いてみます。
・foreach
配列についてループしたい場合で、連想配列を扱いたいときや、配列の中身を書き換える必要が無い場合。
・for
繰り返しの回数が決まっている場合や、連想配列を使用していない配列の中身を書換たい場合。
・while ・do while
ループ条件を中の処理によって変更したい場合。do whileは必ず1回以上ループ内を処理して欲しい場合。
・if & goto
現在はこの構造は使わないようにしましょう。
大体はこんな感じで使い分けすれば自分がやりたい処理にあった構文で書くことができると思います。
どの構文を使っていいか分からなくなったときは foreach > for > while の順で使用目的と合っているかどうかを判断していけばいいと思います。
インターンのマスダです。
最近会社ではObjective-Cを会社の標準開発言語にしようという動きが密かに進行しているようです。
そのせい(おかげ?w)で、自分と同じインターンのヤギさんがC言語に興味を持ち、C言語を勉強しているようなので、参考にならないかもしれませんが自分が使っているツールをいくつか紹介したいと思います。
・TeraPad
まずは定番エディタ。軽いです。便利です。特に編集モードで言語を指定すると色々色分けしてくれるので簡単なプログラムだとこれで書けちゃいます。
・Visual Studio
これも有料ですが定番です。前の職場の開発環境がコレでした。WindowsのGUIアプリはたいていコレで作れます。多少機能が省かれた無料版のものもマイクロソフトのホームページからダウンロードすることもできます。
・DF
ファイルの差分を見ることができます。コレも軽いです。特にフォルダ単位で丸ごと差分をとることができるので結構愛用してたりします。このソフトは差分を見るだけですがマージできるソフトもあるようです。
・Visual Windows for BC++
ボーランドC++の統合開発環境です。無料なので勉強用にWindowsのアプリを作ってみるにはいいかもしれません。
手元にある開発関係の使ってるソフトを上げてみましたが、少ない;;
また面白いソフトとか見つけたら紹介していきたいと思います。
初めましてアセンスにインターンで来させてもらっているマスダです!
初めてなのでとりあえず少し自己紹介をしておきます。
自分は大学から情報システム科に入って
そこから本格的にコンピュータの世界に足を踏み入れました。
大学はシステム系だし前の職場はVC++で機械の制御だったので
この世界は新しい事だらけてあふれています!正直覚えることが多すぎます!
おかげで入った当初はもうテンパってしまって自分でも何をしてるんだか・・・
最近タガヤさんの指導のおかげで少しづつ進めるようになってきました^^;
でもまだまだ勉強不足を痛感しております;;早く仕事ができるようにならないと・・・
どこかのニュースで脳細胞と機械をつなぐニューロン細胞というのが研究されてるそうで
自分の頭が固くなるまでにはそんなのが出てこないかな・・・












最近のコメント