質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

151閲覧

データ配列の結合方法について

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/11/09 07:15

編集2020/11/11 02:35

実現したいこと

Wordpressを使用しています。
独自に作りこんだ固定ページのテンプレートには、そのブログに関するデータを集計するためのものが仕込んであります。

その独自に仕込んだ『2つの2次元配列』を結合して、新しい配列を作り、一覧表として出力(表示)したいと考えています。

該当のソースコード

  • ソースコード(固定ページ用テンプレート)をGoogle Driveに設置しました。

【変数の役割一覧】
gtNum:会員番号(blogID:1)
class:所属
name:氏名
pos:役職
ctNum:会員番号(blogID:18)
MMpt:月間獲得ポイント
MMpz:月間獲得賞金
YYpt:年間獲得ポイント
YYpz:年間獲得賞金

【$cLrows[行]:会員名簿としてから読み込んだ配列】
|gtNum|class|name|pos|

 ▼ ▼ ▼ ▼ ▼

【$pLrows[行]:会員番号だけを抽出し、blogID:18の会員番号別集計に用いる配列】
|gtNum|ctNum|

※blogID:1のデータをもとに取得した会員番号リストをblogID:18のデータと照合・結合するための下準備のために定義しています。

 ▼ ▼ ▼ ▼ ▼

【$resMrows[行]:会員番号ごとの獲得ポイント・賞金の合計を抽出した配列】
|ctNum|MMpt|MMpz|YYpt|YYpz|

 ▽ ▽ ▽ ▽ ▽

【$res[行]:会員名簿と月間・年間の獲得ポイント・賞金の集計結果を結合した配列】
$key? = 会員番号( gtNum or ctNum )

結合先:$cLrows(|class|name|pos|) 
結合元:$resMrows(|MMpt|MMpz|YYpt|YYpz|)

→ → → やりたいことをどう伝えたらよいかわからず、意味合的な事を完結にまとめると、こんな感じ?になるのでしょうか。(クエスチョンマークは、”でいいかわからない”という意味で使っています。)

php

1foreach(会員番号?行番号?){ 2  array( 3      [会員番号?行番号?], 4        array( 5            $res[会員番号?] = join($cLrows,$resMrows); 6        ) 7     ); 8}

補足情報

サーバーやワードプレスの関連情報は次の通りです。
[ O S ] Windows 10
[Server] XAMPP 7.3.22
[ PHP ] 7.4.10
[ D B ] MariaDB 10.3.15
[ W P ] 5.5.1-ja

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cerfweb

2020/11/09 12:43

$ctNumはどこに出てくるのでしょうか。
cerfweb

2020/11/10 09:36

$ctNum, $gtNum, $gtClass, $gtName, $gtPost, $gtMMpt, $gtMMpz, $gtYYpt, $gtYYpz はそれぞれ、提示されているコード以前に定義された変数でしょうか。
退会済みユーザー

退会済みユーザー

2020/11/11 01:19

@cerfweb 様 はい。ご指摘いただいた値は、カスタムフィールドで設定した値や合計値を変数に代入し、$cLrows や $resMrows の二次元配列に割り当てています。
guest

回答2

0

ベストアンサー

誠に申し訳ございません。

この質問を一旦取り下げようと思います。

理由としては、会員番号ごとに「獲得ポイントや獲得賞金の集計」を行っているのですが、集計結果があっていることを確認せずに作業していたため、今更になって「合計値が違っていた」ことに気づきました。

並行作業など行うなどすればいいだけのような気もしますが、私はそのような器用なことは出来ないため、初心に帰って、出直してきます。

大変お騒がせいたしました。

投稿2020/11/11 06:45

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

array_mergeを利用することで目的の動作が実現できます。

PHP: array_merge - Manual

php

1$cLrows[0] = array( 2 'class' => 'class0', 3 'name' => 'name0', 4 'pos' => 'pos0' 5); 6$cLrows[1] = array( 7 'class' => 'class1', 8 'name' => 'name1', 9 'pos' => 'pos1' 10); 11$resMrows[0] = array( 12 'MMpt' => 'MMpt0', 13 'MMpz' => 'MMpz0', 14 'YYpt' => 'YYpt0', 15 'YYpz' => 'YYpz0' 16); 17$resMrows[1] = array( 18 'MMpt' => 'MMpt1', 19 'MMpz' => 'MMpz1', 20 'YYpt' => 'YYpt1', 21 'YYpz' => 'YYpz1' 22); 23 24$res = []; 25foreach($cLrows as $key => $value) { 26 $res[$key] = array_merge($cLrows[$key], $resMrows[$key]); 27} 28 29var_dump($res); 30 31// 結果: 32// array(2) { 33// [0]=> 34// array(7) { 35// ["class"]=> 36// string(6) "class0" 37// ["name"]=> 38// string(5) "name0" 39// ["pos"]=> 40// string(4) "pos0" 41// ["MMpt"]=> 42// string(5) "MMpt0" 43// ["MMpz"]=> 44// string(5) "MMpz0" 45// ["YYpt"]=> 46// string(5) "YYpt0" 47// ["YYpz"]=> 48// string(5) "YYpz0" 49// } 50// [1]=> 51// array(7) { 52// ["class"]=> 53// string(6) "class1" 54// ["name"]=> 55// string(5) "name1" 56// ["pos"]=> 57// string(4) "pos1" 58// ["MMpt"]=> 59// string(5) "MMpt1" 60// ["MMpz"]=> 61// string(5) "MMpz1" 62// ["YYpt"]=> 63// string(5) "YYpt1" 64// ["YYpz"]=> 65// string(5) "YYpz1" 66// } 67// }

投稿2020/11/09 08:06

ku__ra__ge

総合スコア4524

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問