PHP Quiz
https://gyazo.com/97e64cd115b966b039f3b1d343ca839d
llminatoll.icon 2018/4/18の #YYPHP で出題されたミニクイズをやってみました!みんなも挑戦してみて! クイズ:$b === $cにして「OK」が出力されるようにしよう!
code:php
<?php
$a = [1, [2, [3, [4, 5]]]]; function f($a) {
// ここを実装してね
}
$c = f($a);
if ($b === $c) {
echo "OK";
} else {
echo "NG";
}
湊川の回答その①:イテレータバージョン(OK🙆)
code:php
<?php
$a = [1, [2, [3, [4, 5]]]]; function f($a) {
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($a));
$ret = array();
foreach ($iterator as $value) {
$ret[] = $value;
}
return $ret;
}
$c = f($a);
if ($b === $c) {
echo "OK";
} else {
echo "NG";
}
成功🙆
コードレビューしてもらったら、
RecursiveIteratorいいですね👏
今度は再帰便利系クラスのRecursiveIteratorやarray_walk_recursiveを使わず、純粋に自分でアルゴリズムを考えるパターンにもチャレンジしてみてください😊
とのこと。
純粋に自分でアルゴリズム・・・!
湊川の回答その②:力ずくバージョン(最初NG➡︎修正しOK🙆)
code:php
<?php
$a = [1, [2, [3, [4, 5]]]]; function f($a) {
list($A, list($B, list($C, list($D, list($E))))) = $a;
$str = "$A,$B,$C,$D,$E";
$strArray = explode( ',', $str );
foreach ($strArray as $value)
$intArray [] = intval ($value);
return $intArray;
}
$c = f($a);
if ($b === $c) {
echo "OK";
} else {
echo "NG";
}
全然スマートじゃないけど一番最初に思いついた方法がこれだったので・・・(結合してそのあと切り出す)。
一回文字列に結合してるからそれでstringになってて、int型に戻す必要があった。
これは・・・もっとセンスいい書き方ができるやつだ・・・🔥🔥💪( ˘ω˘💪)🔥🔥
上のふたつはWebデザイナーの私llminatoll.iconのへぼへぼコードなので、エンジニアの方ならもっとセンスいい書き方ができると思います!
http://cdn.c16e.com/yyphp/slack-1.png
http://cdn.c16e.com/yyphp/slack-2.png
llminatoll.icon PHPだけに限らず、DDDの話、Dockerの話、最近行ったカンファレンスの話、LTなど技術系のことならなんでも質問・情報共有できます!
YYPHPとは?
https://gyazo.com/6dbbfcf61a96eb0103c9f05a865de746
YYPHPは一言で「PHPerの部室」です。PHPについて、雑に、ゆるく、ワイワイ話し合う集いです。毎回お題を決めずに雑談を出発点にいろいろなことを突発的にやります。集まった人でコードリーディングをすることもあれば、一緒に開発ツールを触ってみたり、フレームワークについての情報交換をすることもあります。開催は毎週水曜19:00に高田馬場にて。
直近だと2018/04/27(金)19:00 〜 21:00 開催されるようです🦀
2018/4/19 llminatoll.icon
Scrapbox上のcode表記に行番号を出すCSSは settings から🌈 他にもPHPクイズあるからやってみてね〜