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

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

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

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

Q&A

解決済

2回答

327閲覧

phpで、配列の中に配列をうまく代入できません

yayak

総合スコア66

PHP

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

0グッド

0クリップ

投稿2018/11/28 05:55

編集2018/11/28 06:55

ワードプレスのget_comments関数の配列の中に、配列を代入したいのですが、どうしてもうまくいきません。

$hoge = "'meta_key' => '色','meta_value' => '黒'"; get_comments( array( 'post_id' => get_the_ID(), //表示中のページ対するコメントを取得 $hoge, //'meta_key' => '色','meta_value' => '黒'のコメントを取得したい   // 上記の書き方ですと、変数の中身が文字列として出力されているからだと思うのですが、うまくいきません。 ));

どのようにすれば、「'meta_key' => '色','meta_value' => '黒'」を配列の中にうまく代入することができるでしょうか。

もしご存知の方がいらっしゃいましたら、知恵をお貸し頂けましたら幸いです。
何卒、宜しくお願い致します。

以下、追記です。

$hoge = ['meta_key' => '色','meta_value' => '黒']; get_comments( array( 'post_id' => get_the_ID(), //表示中のページ対するコメントを取得 $hoge, //'meta_key' => '色','meta_value' => '黒'のコメントを取得したい ));

上記のようにすれば、'meta_key' => '色','meta_value' => '黒'のコメントに絞って取得できると思ったのですが、なぜか、$hoge内の条件が無視された状態で、そのページに対する全てのコメントが取得されてしまいます。$hogeを代入した結果、以下のようなコードになり、意図したことが実現すると思ったのですが、ワードプレスの仕様の問題なのでしょうか。

//代入の結果、以下のコードを実現したいです。(以下のコードですと意図したコメントが取得されます) get_comments( array( 'post_id' => get_the_ID(), 'meta_key' => '色',   'meta_value' => '黒' )); //そのページに対するコメントで、'meta_key' => '色','meta_value' => '黒'のコメントが取得される。

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

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

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

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

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

guest

回答2

0

ベストアンサー

PHP

1$hoge = array( 2 'post_id' => get_the_ID(), //表示中のページ対するコメントを取得 3 'meta_key' => '色', 4 'meta_value' => '黒' 5); 6get_comments( $hoge );

投稿2018/11/28 06:15

kei344

総合スコア69430

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

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

yayak

2018/11/28 07:01

その発想はありませんでした。 もう少しだけ、配列内に配列を代入という点を練習のためにも思考錯誤してみようと思うのですが、上記のコードもぜひ試させて頂きたく思います。 このサイトに来るたびに、恥ずかしさで顔が赤くなって勉強せんといかんという思いでいっぱいになります、、
kei344

2018/11/28 07:05 編集

> 配列内に配列を代入 get_commentsに渡す配列を質問文にて提示されている方法ですることは無理だと思いますよ。
yayak

2018/11/28 07:11

といいますと、質問文とは違う他のやり方ではできる、ということでしょうか・・・><?
kei344

2018/11/28 07:12

それを回答していますが。
yayak

2018/11/28 07:14 編集

すみません、頭が混乱していました><; 本当にその通りでした。。 有難うございます!!
guest

0

php

1$hoge = "'meta_key' => '色','meta_value' => '黒'";

↑そもそも文字列ですよね。

配列を作ればいいのでしたら、
↓こうでは

php

1$hoge = ['meta_key' => '色','meta_value' => '黒'];

※[]はarray()を省略して書ける書き方です。PHPマニュアル参考にしてください。

投稿2018/11/28 05:59

編集2018/11/28 06:10
m.ts10806

総合スコア80852

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

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

yayak

2018/11/28 06:14

いつも助けて頂き、本当に有難うございます。 $hoge = ['meta_key' => '色','meta_value' => '黒']; とした上で、get_comments内に$hogeを代入してみたのですが、うまくいきませんでした。 そこで、print_r($hoge)でも代入を試したのですが、その場合、 'meta_key' => '色','meta_value' => '黒' とは代入されず、 Array ( [meta_key] => yaya_commentType [meta_value] => カット [meta_compare] => LIKE ) 1 と代入されてしまい、get_commentsがうまくできませんでした。 自分の実力不足がもどかしいです。。 いつも、本当に有難うございます。本当にダメ人間でしたが、おかげで勉強を辞めずにいられます。
m.ts10806

2018/11/28 06:16

「うまくいかない」だけだと何が起きたか分かりません。 参照の仕方などもあるかと思います。 print_r()では代入ではなく出力です。 私が提示したやり方で間違いなく配列としては追加できるはずですが、 結果的にどのように使いたいのでしょうか。 現在の質問内容だけでは用途まで分かりませんので、そのあたり質問本文に追記していただけますか?
yayak

2018/11/28 06:57

追記しました、本当に頭が下がる思いです。 (この追記の仕方でよいかどうか、不安でいっぱいです。)
kei344

2018/11/28 07:11

To: mts10806さん $a = [ 'a' => 'a' ]; $b = [ 'b' => 'b', $a ]; で多分、[ 'b' => 'b', 'a' => 'a' ]となると思っておられるようです。
m.ts10806

2018/11/28 07:13

あまり恐れおおられても困るかなと。あくまで淡々といきましょう。 ただ、私の回答だともう一段別の配列を追加することになりますね。 質問に追記された内容ですと他回答でついた内容で対応可能で、わざわざ変数にする必要がないように思います。
m.ts10806

2018/11/28 07:15

kei344さん どうしたいか分からなかったのでとりあえずで回答しましたがそちらの回答が正解ですね。
yayak

2018/11/28 07:18

畏まりました。淡々と、ですね。。 それでも、本当に、いつも有難うございます。 もっともっと、精進します。
m.ts10806

2018/11/28 07:20

はい 感情的になっても悲観的になってもプログラムは気遣いしてくれませんし、あくまで指示した通りにしか動きませんから。
yayak

2018/11/28 07:24

本当にその通りですね。。 $a = [ 'a' => 'a' ]; $b = [ 'b' => 'b', $a ]; で、[ 'b' => 'b', 'a' => 'a' ]となると思っていたので、配列について一から勉強し直します!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問