array_column

Posted by muchag | PHP |
初回投稿:2016-01-13 (水) 21:51:59 | 最終更新:2016-01-13 (水) 21:51:59

array_column は、連想配列群の中から、単一カラムを取り出して配列で返してくれる。

【環境】
PHP: 5.4.7
内容

レコードセットのように、同型の連想配列が連番で格納されているような配列において
各レコードから特定のカラムの値だけを抽出する。

書式

array array_column ( array $input , mixed $column_key [, mixed $index_key = null ] )

php:array_column

第1引数:元配列
第2引数:抽出したいカラム名
第3引数:抽出後キーにしたいカラム名。省略可

  1. $users = Array(
  2.     0 => Array(
  3.         'id' => 'user001',
  4.         'name' => 'tanaka',
  5.     },
  6.     1 => Array(
  7.         'id' => 'user002',
  8.         'name' => 'suzuki',
  9.     },
  10.     2 => Array(
  11.         'id' => 'user003',
  12.         'name' => 'yamada',
  13.     },
  14. );
  15.  
  16. $names = array_column($users, 'name');
  17. print_r($names);
  18.  
  19. // 出力結果
  20. Array(
  21.     0 => 'tanaka',
  22.     1 => 'suzuki',
  23.     2 => 'yamada',
  24. );
  25.  
  26. $names = array_column($users, 'name', 'id');
  27. print_r($names);
  28.  
  29. // 出力結果
  30. Array(
  31.     'user001' => 'tanaka',
  32.     'user002' => 'suzuki',
  33.     'user003' => 'yamada',
  34. );
あれ?

PHP 5.5 から新しく加わった関数。

残念!
私は 5.4.7 だった><

代替

がっかりポンだ~と思っていたら
代替というか、GitHub:array_column/src/array_column.php で関数が提供されていた。
ありがとうございます!

ファイルに保存して、インクルードパスへ配置して
require して、見事動作しました♪

Posted by muchag | PHP |
初回投稿:2016-01-13 (水) 21:51:59 | 最終更新:2016-01-13 (水) 21:51:59

デバッグ -> ブレークポイントで止めると、再開時エラーになる

Posted by muchag | Eclipse |
初回投稿:2016-01-07 (木) 19:02:09 | 最終更新:2016-01-07 (木) 19:14:17

【環境】
Eclipse:Mars.1 (4.5.1) PHP
症状

あるとき、突然デバッグ中に例外が発生するようになった。

ブレークポイントで止めて、再開させるとすぐ例外になる。
ブレークポイントの位置を変更しても変わらず。

エラー内容

「未定義のメソッドを使ってるよ~」だそうです。

PHP Fatal error: Uncaught exception ‘sfException’ with message ‘Call to undefined method opPcFrontWebController::getOption.’ in …

Call to undefined method searchActions::getOption.

原因

Eclipse [デバッグ] パースペクティブの [式] ビューに
$this->getOption(); を登録してあったこと。

解決

上記ウォッチ式を削除する。

試行錯誤

最初は真剣にエラー文言の通り、メソッドが足りないのかと
エラー文言で Google 先生へお伺いを立てた。

でも、な~んもなし。

それで、ふと思いつき、エラートレースの中の xdebug://debug-eval で検索したら
stack overflow:Call to a member function getAction() on a non-object
を見つけた。

中を読むと、ウォッチリストを全部削除したら直った、と書いてあったので
ウォッチリストを見てみると、$this->getOption(); なんていう式が・・・。

なるほど、これの getOption か。。。
チャンチャン。

Posted by muchag | Eclipse |
初回投稿:2016-01-07 (木) 19:02:09 | 最終更新:2016-01-07 (木) 19:14:17

YEdit

Posted by muchag | Eclipse,Library & PlugIn & AddIn |
初回投稿:2016-01-06 (水) 17:38:42 | 最終更新:2016-05-28 (土) 14:06:28

テーマを「ダーク」にしているせいか
YAML ファイル内容がグレー一色で暗いので、
こちらを試してみた。
GitHub:YEdit

【環境】
Eclipse:Mars.1 (4.5.1) PHP
OS:Windows7 SP1 64bit
インストール
  1. [ヘルプ]-[Eclipse マーケットプレース]
  2. Eclipse マーケットプレース
    1. 検索窓で「YEdit」
    2. [インストール]
  3. 選択されたフィーチャーの確認
    1. [確認]
  4. ライセンスのレビュー
    1. [使用条件の条項に同意します] を選択
    2. [完了]
関連付け
  1. [ウインドウ]-[設定]
  2. 左ペイン:[一般]-[エディター]-[ファイルの関連付け]
    1. ファイルの関連付け
      1. ファイルタイプ
        1. 選択。なければ [追加]
      2. 関連付けられたエディター
        1. 選択。なければ [追加]
    2. [OK]
書式設定
  1. [ウインドウ]-[設定]
  2. 左ペイン:[YEdit Preferences]-[「色」設定]
メモ
  • コメント:RGB(98, 98, 98)
  • キー:RGB(167, 236, 33)
  • Scalars:RGB(232, 198, 163)
  • 定数:RGB(167, 236, 33)、太字
  • アンカー:未設定
  • エイリアス:未設定
  • タグ:未設定
  • 文書:未設定
  • デフォルト:未設定
Posted by muchag | Eclipse,Library & PlugIn & AddIn |
初回投稿:2016-01-06 (水) 17:38:42 | 最終更新:2016-05-28 (土) 14:06:28

Photoshop -> スクリプト

Posted by muchag | JavaScript,Photoshop |
初回投稿:2016-01-06 (水) 13:00:11 | 最終更新:2016-02-19 (金) 20:02:30

Adobe 製品を Javascript で制御できるそうな。
素敵~。

【環境】
Photoshop:CS6
OS:Windows 7 SP1 64bit
実行
[ファイル]-[スクリプト]-[参照] JSX ファイルを選択して [読み込み]
デバッグ

上記実行行程の [読み込み] をクリックする際に
Alt を押しながらで、デバッグウィンドウが開く。

layers, artLayers

よくわからないので、スクリプトを書いて検証中。
現在のところ、下記のような感じ。
正解は不明。
layers:第1階層のレイヤー(グループディレクトリもレイヤーとしてカウント)
artLayers:第1階層の画像を含むレイヤー

テキストレイヤー

Photoshopでテキストレイヤーを作成するスクリプト

ExtendScript Toolkit
コンソール

JavaScript コンソールへ出力する方法。

  1. $.write('hoge');
  2. $.writeln('moge'); // 改行あり
マクロ記録

Excel VBA のときに散々お世話になった「マクロ記録」。
Photoshop にもあった~♪

概要

Scripting Listener というプラグインを利用する。

DL

各紹介記事では
公式ヘルプ:Photoshop CC アドオン(プラグインおよび拡張機能)
から DL と紹介されているけど、実際は、上記ページの下部「ダウンロード可能な内容」をクリックして
Photoshop Help:Downloadable plug-ins & content | Photoshop CC
へ飛び、ScriptingListener plug-in から DL。

2016-02-19 現在
Win_Scripting_Plug-In.zip(Windows 用)

配置

アプリケーションディレクトリ(32bit か 64bit 次第)を photosho と称する。

  1. Win_Scripting_Plug-In
  2. └─Scripting_Win32(または Scripting_Win64)
  3.     ├─Documents
  4.     │      略
  5.     │
  6.     ├─Sample Scripts
  7.     │  ├─AppleScript
  8.     │  │      略
  9.     │  │
  10.     │  ├─JavaScript
  11.     │  │      略
  12.     │  │      ScriptListenerOff.jsx → photosho\Presets\Scripts
  13.     │  │      ScriptListenerOn.jsx → photosho\Presets\Scripts
  14.     │  │      略
  15.     │  │
  16.     │  └─VBScript
  17.     │          略
  18.     │
  19.     └─Scripting Utilities
  20.             ScriptListener.8li → photosho\Plug-ins
再起動

Photoshop を起動中であれば再起動。

利用

これで、[ファイル]-[スクリプト] に

  • ScriptListenerOff
  • ScriptListenerOn

が表示されるようになるので
記録を開始したいときに On を、終了したいときに Off を選択すればよい。

記録結果

記録内容は、デスクトップに

ScriptingListenerJS.log

というファイルが生成される。

追記式なので、必要に応じてファイルをコピーして
本体ファイルのテキストをクリアすること。

参考サイト

Adobe:API Documentation com.adobe.photoshop

Adobe Photoshop CS6自動化作戦
→サンプルスクリプトがいっぱい♪

Adobe CS1〜C6, CC バージョンJavaScript リファレンス&ライブラリ

Google ブックス:Photoshop自動化基本編
→これなんだろ。。。抜粋でなくて全部読めるっぽい。

Posted by muchag | JavaScript,Photoshop |
初回投稿:2016-01-06 (水) 13:00:11 | 最終更新:2016-02-19 (金) 20:02:30

ショートカット

Posted by muchag | Photoshop |
初回投稿:2016-01-06 (水) 12:16:51 | 最終更新:2016-01-06 (水) 12:52:21

【環境】
Photoshop:CS6
OS:Windows 7 SP1 64bit
レイヤー
表示・非表示一括切り替え

表示アイコンのドラッグ。

ドラッグ開始レイヤーの切り替えに準拠。

つまり、ドラッグ開始レイヤーが表示中の場合
クリックすることで、非表示に変わるわけだから
クリックでなくドラッグすることで、残りのレイヤーも全て非表示に。

特定(1枚)のレイヤーだけ表示

Alt + 表示アイコンクリック。

2回連続でクリックすれば元へ戻る。

メモ

coliss:Photoshopで、レイヤーを操作する便利な33のショートカット

Posted by muchag | Photoshop |
初回投稿:2016-01-06 (水) 12:16:51 | 最終更新:2016-01-06 (水) 12:52:21

eclipse.ini

Posted by muchag | Eclipse |
初回投稿:2015-12-31 (木) 14:52:08 | 最終更新:2019-03-25 (月) 12:17:12

【環境】
Eclipse:Mars.1 (4.5.1) PHP
->2019-03 (4.11) PHP
OS:Windows7 SP1 64bit
ファイル内容
pleiades\eclipse\eclipse.ini

-product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
512M
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms256m
-Xmx1g
-Xverify:none
-javaagent:dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
メモリ

Eclipse2019-03 (4.11) PHP
4.8 からだったと思うけど

eclipse.ini

から、メモリ使用量の記述が消えている。


-Xms2g
-Xmx4g

今回はこのように追記してみた。

Eclipse フッタのヒープ・サイズを見る限り
追記でちゃんと反映されているっぽい。

EclipseMars.1 (4.5.1) PHP


-Xms256m → 1g
-Xmx1g → 2g

としてみた。

Posted by muchag | Eclipse |
初回投稿:2015-12-31 (木) 14:52:08 | 最終更新:2019-03-25 (月) 12:17:12

関数名を文字列で指定して実行する

Posted by muchag | JavaScript |
初回投稿:2015-12-30 (水) 15:13:45 | 最終更新:2015-12-30 (水) 15:20:04

PHP では、$$hoge という書き方があって便利なんだけど
Javascript ではどうやるのかな~って探してみた。

下記サンプルコードは、参考サイトより引用させていただきました。

eval

メソッド名を文字列で組み立てて
eval してやることで、関数として「評価」してくれる
ということらしい。率直だ!

  1. var word="apple";
  2. function orange(){
  3.     alert("ミカン");
  4. }
  5. function apple(){
  6.     alert("リンゴ");
  7. }
  8. eval(word+"()");
関数連想配列

私はこちらの方がピンときたので、こちらを採用させていただいた。

  1. var myfunction = [];
  2. myfunction["tashi"] = function (a, b) {
  3.     return a + b;
  4. }
  5. myfunction["hiki"] = function (a, b) {
  6.     return a - b;
  7. }
  8. alert(myfunction["tashi"](2, 5));
参考サイト

You Look Too Cool
evalを使わずに関数を文字列で指定して実行する方法
文字列で関数を実行する

Posted by muchag | JavaScript |
初回投稿:2015-12-30 (水) 15:13:45 | 最終更新:2015-12-30 (水) 15:20:04

HAVING

Posted by muchag | MySQL |
初回投稿:2015-12-28 (月) 9:49:07 | 最終更新:2015-12-28 (月) 11:12:00

【環境】
MySQL:5.5.27, 5.5.38

MySQL:13.2.9.2 JOIN Syntax

用途

グループ化されたデータ(GROUP BY)に対して
検索条件を指定する。

検索対象

よって、GROUP BY 句内のカラムか、または集約関数で使用されるカラムしか参照できない。

記述位置

HAVING 句は、すべての GROUP BY 句のあとで、かつすべての ORDER BY 句の前にある必要があります。

MySQL:13.2.9 SELECT 構文

この記事は、日本語版 5.5用はなかった。

適用順

HAVING 句は、ほぼ最後 (項目がクライアントに送信される直前) に最適化なしで適用されます。(LIMIT は HAVING のあとに適用されます。)

MySQL:13.2.9 SELECT 構文

エイリアス

カラムエイリアスを使用できる。

  1. SELECT COUNT(user_id) AS cnt
  2. FORM hoge
  3. HAVING cnt > 10;
Posted by muchag | MySQL |
初回投稿:2015-12-28 (月) 9:49:07 | 最終更新:2015-12-28 (月) 11:12:00

調査

Posted by muchag | MySQL |
初回投稿:2015-12-27 (日) 23:18:52 | 最終更新:2015-12-28 (月) 0:07:19

ちょ、ちょっと私にはハードルが高い。。。と思われる。
でも、少しずつでも触っていれば、理解していけるかもしれないので
いつもの通り特攻してみるメモ。

EXPLAIN

クエリの実行内容解析?
SELECT ステートメントの頭に EXPLAIN を付けて実行する。

  1. EXPLAIN
  2. SELECT *
  3. FROM tableA
  4. WHERE column1 = a;

上のクエリ例と下の EXPLAIN 例の内容は全く合致してないけど。。。

参考サイト

漢のコンピュータ道:MySQLのEXPLAINを徹底解説!!(2009-03-31)
→ちょっと古い記事だけど、詳しくてわかりやすい

Qiita:MySQLのEXPLAIN(2014-10-23)
→上記記事を参考にまとめられた記事

FROFILE

MySQL 5.6 では、非推奨になってしまったらしい。
なくなっちゃうんだって。
GMOメディア エンジニアブログ:MySQL 5.6ではprofilingが非推奨になってしまった件

参考サイト

漢のコンピュータ道:プロファイリングで快適MySQLチューニング生活(2009-02-03)
→ちょっと古い記事だけど、詳しくてわかりやすい

MySQL Casual:show profileでフェーズごとの実行時間を見る – MySQL Casual Advent Calendar 2010(2010-12-05)
→PROFILE を貯める方法? と、それを参照する方法が載っている

障害解析
参考サイト

Qiita:誰も教えてくれなかったMySQLの障害解析方法(2014-07-12)
→まだまだサッパリわからない。というか試す暇がないけど、いつかやりたい!

Posted by muchag | MySQL |
初回投稿:2015-12-27 (日) 23:18:52 | 最終更新:2015-12-28 (月) 0:07:19

Doctrine -> DISTINCT, LEFT JOIN

Posted by muchag | Symfony 1.x |
初回投稿:2015-12-22 (火) 16:19:36 | 最終更新:2015-12-22 (火) 16:19:36

注意書きを見つけたのでメモ。

【環境】
OpenPNE:3.8.15
Symfony:1.4.13
doctrine:1.2.4
参考サイト

Qiita:DoctrineのDISTINCTは正しく動作しない
→回避策あり

Qiita:DoctrineのLEFT JOINはまともに使えない
→回避策あり

Posted by muchag | Symfony 1.x |
初回投稿:2015-12-22 (火) 16:19:36 | 最終更新:2015-12-22 (火) 16:19:36
« 前ページへ次ページへ »