【PHPプログラミング】メモ帳に適当にメモったPV数値をexplodeで配列にし、array_sumで合計値を計算する

      2021/12/08   1788文字

今回は、電卓で計算してもめんどくさい、メモ帳に適当にメモってしまった数値を、PHPのファンクションを使って合計値を一瞬で取ります。エクセル入力してあれば一発ですが、windowsメモ帳でした。なんかプログラムを使えると効率がよさそうです。さっそくやってみましょう。

必要になった状況=>メモ帳に適当にメモしたPV数値の、合計を知りたい

で、今回の対応が必要になった経緯について。要は合計PVの計算です。

管理人はgoogleアナリティクスのプロパティはドメインごとに管理していますが、『そのドメインに複数サイトが入っている』というケースがあります。最近追加したものだと、urlに短い接頭辞がついているので、文字列で絞り込んで合計値がすぐわかります。また、プロパティを切っているものも、同様に絞り込んですぐわかります。

しかし、昔解析してたサイトだと、『プロパティや接頭辞で分けていない』『スラッグやタイトル変更したものが混在している』という問題がありました。希望のページだけ一発絞り込みができず、目視確認してwindowsメモ帳に入力という原始的なやりかたに。


これがそのメモ帳です(笑)これでは、該当のページPV合計がどのくらいかわかりません。電卓でやってもかなり時間がかかるので、エクセルのsumみたいなイメージで、『この数値の合計をプログラムをつかって一発計算』というのをやってみます。

適当にメモって羅列された数値を、PHPで配列にして合計値を求める(explode&array_sum)

コード例(PHP)

変数$pvsには、テスト用として、上記のメモ帳の一行目を入れています。explodeというのは、PHPの『文字列を分割して配列を返す』というファンクションで、引用符で囲んだ半角空白がセパレーターになります。この数字羅列は、$pv_arrayという配列に。

その配列$pv_arrayに対して、array_sumを使います。PHPの『配列の合計値を求める』というファンクションで、int(整数)/float(浮動小数点数値)が戻ってきます(ab cd efみたいな文字列を入れても、0が戻ってきます)

実行例


xampp立ち上げるのもめんどくさかったので(笑)、paiza.ioでサクッと実行。最初の一行目の数値合計は『37204』になりました。全部だと『57930』だったかな。

入力欄みたいにして計算webサービスにしても良いんだけど、その場合は『数値とセパレーター以外の文字やスクリプトなどをハネる・エスケープする』など、バリデーションをしっかりやります。あとは数字の桁数でしょうか。64ビットとはいえ、9223372036854775807(922京3372兆368億5477万5807)以上の数値をぶち込まれるとオーバーフローするので。

参考リンク(PHPマニュアル)

あとがき・まとめ

  • メモ帳に適当に羅列した数値を電卓で計算するのは大変なので、プログラミングを使う
  • PHPのexplodeで、羅列したものを配列にできる
  • 配列の中身が数字の場合は、array_sumで合計値計算できる

まとめると、このようなところでしょうか。最初から、アナリティクスのプロパティや、接頭辞区切りをやっとけって感じでしたが、混在してわけわからなくなっていたPV合計がわかりました。

今回は簡単な内容でしたが、『田中さんの月別受注 1月/2件,2月/6件,~』みたいなスプレッドシートのデータがあるとき、配列に変換して合計値を求めたり、のように活用できるかもしれません。

WordPressサイト制作&リニューアル・機能開発サービス | アトリエSS


【カテゴリ】 - PHP・データベースetc
【タグ】 -

  関連記事

【WordPress別サーバー引っ越し】SQLエクスポート/インポート&Redirectionプラグインを使った方法
WordPress・REST APIのjsonファイルにカスタムフィールドを入れ、タイトル・アイキャッチと共に外部サイトで取得・表示
WordPress一覧表示で、特定のカテゴリ/投稿を表示しないようにするには?→category_not_in・post_not_inで
テスト環境(ローカル含む)でPHPサイト開発に使えるツール&xamppでやってみた例(設定や表示ファイルetc)
【WordPressフィールド画像取得】array_push&foreachループ、代替テキストをクラス出力、表示/非表示を切り替える方法
【別に止めなくてOK】WordPressサイトなどに、アメブロ・fc2など無料ブログの更新情報を表示して連携する方法
【WordPress組み込み関数】is_home()とis_front_page()って同じ?→似てますが、厳密には挙動が異なります
【PHP学習】var_dumpで出力するのと、echoで出力するのは、挙動がどのように違うの?
WordPressの記事IDで判定して転送~PHP・headerとget_the_IDで対応、the_IDとの挙動の違いも
【PHP】GD・ImageFilterで、画像の色合いを変えてみる
YouTube Data APIを使って、PHPで『タイトル・動画id・サムネイル画像』などを取得してみる(Search: listリソース)
【画像つきでわかりやすい】WordPressで使われるデータは、MySQLデータベースに、どのように格納されているの?