ギークなお姉さんは好きですか

恋焦がれる理想の男性・ギークに近づくため、プログラミングがわかるお姉さんを目指すブログ

配列置換問題へのトラックバックありがとうございました!

祝電

にぽたんさん、お誕生日おめでとうございました(・∀・)



配列置換の答えはひとつじゃないーの巻

配列の先頭はそのままに、先頭以外の要素をすべて0に置き換える。

初心者向けPHP練習問題リンク+学習ログ

先日のエントリ内で紹介した 「配列いじり」 について、”自分ならこう書く” というトラバをいただきました!
すごく嬉しい。ありがとうございますっ!!


$len = count($num);
$new_num = array_fill(0, $len - 1, 0);
array_unshift($new_num, $num[0]);

配列numの要素数を調べて、そこから-1した数だけ0で埋めた配列を作り、
配列numの先頭の要素をarray_unshiftで配列new_numの先頭に追加すれば完成。

配列の先頭以外の要素を0に置き換え - 243 inari 様

そうか、そういう考え方もあるのか。エンジニアの数だけ発想があるんだなぁ。
というのは言いすぎかもしれないけどw なんというか、純粋に面白いと思った。


$after = array_pad(array($before[0]), count($before), 0);

問題の意図は、「配列内の数字がどんな値であっても先頭の数値以外はすべて0にする」
ってことだと思いますよ。

「配列いじり」のコマンドライン版を作ってみた - 積み重ねた日々 様

array_pad!なんとビンゴの関数が!!
最初にトラバくれた ilo さんも、追記で「array_padの方がわかりやすいな〜」と書いていた。
そして、我らが(?)ギークなバスケットマンも array_pad を使っている。


$after = array_pad( array($num[0]), count($num), 0);

マニュアルをよく見ると適した関数とか見つかっていいよね。
array_padとか覚えておく類の関数じゃないしね・・。

人のコードを見ることは大事だよね - ito.tetsunosuke/notebook 様

?な!array_pad は覚えておく関数じゃないのか!
必要なときにマニュアルで検索すればおk、ってことか。マニュアルと仲良くしよう。


@(error surpression)はあんまり推奨しないかなあって感じ。
何より、@fileとかで開けなかった場合の後の処理を考慮していないのがいまいち。


エラーを無視するエラー制御演算子を多用するのはイクナイとのご指摘。
ふむ。どこでエラーが発生したか分からなくなるから気をつけろ!と、Saity先生が言ってた気がする。
# 違うサイトだったかも、ここでそう読んだ気がするが自信無い。


3人が使っている implodejoinimplode()関数のエイリアス)。
最初、「え!逆じゃない? implode(連結文字列,配列要素) なのでは!?」とテンパったが、
マニュアルをよく見たら注意書きがあった。

注意: implode()は、歴史的な理由により、引数をどちら の順番でも受けつけることが可能です。

PHP:implode - Manual

ブラウザで両方試してみたら、確かにどちらを先にしても結果は同じ。そうかー。そうなのかー。



あ。カテゴリが [コメント欄より] になってるけど気にしないでくださいね!
[コメント・トラバより]に変えようかな・・・ううむ。