めも。
foreach($rows as $row) {
if(end($rows) !== $row) {
// 最後じゃない場合の処理
echo ',';
}
}
ループ中にimplode()的なことをやりたい時に便利。
めも。
foreach($rows as $row) {
if(end($rows) !== $row) {
// 最後じゃない場合の処理
echo ',';
}
}
ループ中にimplode()的なことをやりたい時に便利。
これが使えれば、ちょっと特殊なSQLも簡単に発行可能。
下記使った時の例。(ちょこっと改変してあります)
public function myCount() {
$return = Cache::read($this->name.'_'.__FUNCTION__);
if(!$return) {
// バーチャルフィールドの追加
$this->virtualFields = [
'count' => 'count('.$this->alias.'.id)'
];
$conditions = [
$this->alias.'.status' => 1
];
$fields = [
$this->alias.'.hoge',
$this->alias.'.count',
];
$group = $this->alias.'.hoge';
$return = $this->find('list', [
'conditions' => $conditions,
'fields' => $fields,
'group' => $group
]);
Cache::write($this->name.'_'.__FUNCTION__, $return);
}
return $return;
}
う?む。唸るほど便利。
console.count()メソッドを用いると、それを記述した行を通過する度に
引数に渡した値と通過した回数(count()メソッドを呼び出した回数)を
コンソール画面に出力しれくれる。
下記例。
console.count('通過しました。');
↓
通過しました。: 1
※通過する度に右側の数値が2,3,4とインクリメントしていく。
めも。
グループ化を用いる。
下記例。
'aaahogehogeaaa'.match(/aaa(.*)aaa/) ↓ ["aaahogehogeaaa", "hogehoge"]
めも。
例えばこんな感じ。(datetimeをdateに)
select cast('2014-04-07 23:23:23' as date);
↓
2014-04-07
めも。
select trim(' aaa ');
↓
aaa
めも。
select left('abcde', 2);
↓
ab
めも。
select right('.com/', 1);
↓
/
select right('.com/', 3)
↓
om/
今回はURLの末端にスラが有るか無いかを判定するのに使ってみた。