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

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

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

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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

Q&A

解決済

3回答

1991閲覧

配列内の添え字を元に特定のキーを取得したい

melmelme

総合スコア38

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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

0グッド

0クリップ

投稿2017/05/19 13:57

配列内の添え字を元に特定のキーを取得したいです。
↓の配列の
[meta_key]が"果物"なテーブルを探して、[meta_value]を取得したいのですが、何か上手い方法はないでしょうか?

以下の例は簡略化していますが、実際に使用している配列はテーブルの数が多くサーチを使いたいのです。
ご教示の程よろしくお願い致します。

php

1array(3) { 2 [0]=> 3 array(4) { 4 ["meta_id"]=> 5 string(3) "111" 6 ["post_id"]=> 7 string(3) "112" 8 ["meta_key"]=> 9 string(18) "果物" 10 ["meta_value"]=> 11 string(27) "りんご" 12 } 13 [1]=> 14 array(4) { 15 ["meta_id"]=> 16 string(3) "222" 17 ["post_id"]=> 18 string(3) "223" 19 ["meta_key"]=> 20 string(9) "野菜" 21 ["meta_value"]=> 22 string(2) "にんじん" 23 } 24 [2]=> 25 array(4) { 26 ["meta_id"]=> 27 string(3) "333" 28 ["post_id"]=> 29 string(3) "334" 30 ["meta_key"]=> 31 string(9) "穀物" 32 ["meta_value"]=> 33 string(21) "米" 34 } 35 36}

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

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

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

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

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

guest

回答3

0

ベストアンサー

array_walkで走査すればよいでしょう

PHP

1<?PHP 2$a=[ 3 [ 4 "meta_id"=>"111", 5 "post_id"=>"112", 6 "meta_key"=>"果物", 7 "meta_value"=>"りんご", 8 ], 9 [ 10 "meta_id"=>"222", 11 "post_id"=>"223", 12 "meta_key"=>"野菜", 13 "meta_value"=>"にんじん", 14 ], 15 [ 16 "meta_id"=>"333", 17 "post_id"=>"334", 18 "meta_key"=>"穀物", 19 "meta_value"=>"米", 20 ], 21 [ 22 "meta_id"=>"444", 23 "post_id"=>"445", 24 "meta_key"=>"果物", 25 "meta_value"=>"みかん", 26 ], 27]; 28 29$b=[]; 30array_walk($a,function($x) use (&$b){ 31 if($x["meta_key"]=="果物") $b[]=$x["meta_value"]; 32}); 33print_r($b); 34

投稿2017/05/19 14:12

yambejp

総合スコア114814

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

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

0

検証していませんが、phpの array_filter()関数を用いて、

php

1function filter01( $var ) { 2 return ( $var["meta_key"] == "果物" ) ? TRUE : FALSE; 3} 4 5$array_selected = array_filter( $array, filter01 ); 6print_r( $array_selected ); 7

といったコードが基本形でしょう。

投稿2017/05/19 14:25

seastar3

総合スコア2285

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

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

0

質問に WordPress タグが付いているので。

【関数リファレンス/get post custom values - WordPress Codex 日本語版】
https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_post_custom_values

【get_post_custom_values() | Function | WordPress Developer Resources】
https://developer.wordpress.org/reference/functions/get_post_custom_values/

投稿2017/05/19 14:38

編集2017/05/19 14:38
kei344

総合スコア69407

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問