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

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

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

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

PHP

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

Q&A

解決済

3回答

2768閲覧

foreachの中に優先度をつけることが出来るのか

bainary

総合スコア58

WordPress

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

PHP

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

0グッド

0クリップ

投稿2019/04/16 06:40

編集2019/04/16 06:52

foreachの中に指定している配列を数値をつけて数値順に引き出すことって可能ですか?

wordpress上にあるプラグイン、Advanced Custom Fieldsの設定なのですが
今現在

php

1foreach (get_fields() as $field_name => $field) { 2 if ($field) { 3switch ($field_name) { 4 case 'カラム名': 5 $table['カラム名'] = $field; 6 break; 7case 'カラム名': 8 $table['カラム名'] = $field; 9 break; 10case 'カラム名': 11 $table['カラム名'] = $field; 12 break; 13//この形がかなり続きます。

この形がかなり続きます。
という形で、値を取り出しワードプレスで表示しています。
値を登録した順番で今は表示されているのですが、これを自分で数値を決めて並び替えるような形にしたいのですがどこにkeyを指定していけばいいのか、どういう風に値を出力すればいいのかが全く分かりません。

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

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

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

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

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

azuapricot

2019/04/16 06:44

可能ですか?ときかれれば「できるんじゃないすか?」で終わりです。
m.ts10806

2019/04/16 06:47

何も調べず試さずは非推奨です。 質問するにしても具体的な配列の情報、試したコードは必須です。 前の質問にも書きましたが「考えたことがあるなら具体的に記載してください」 でないと単なる丸投げの作業依頼です。
m.ts10806

2019/04/16 06:48

なぜforeachの中でやろうと思ったの?とか不明点も多すぎます。 質問を編集してきちんと追記し、teratailの質問として成り立たせてください。 https://teratail.com/help/question-tips
bainary

2019/04/16 06:52

失礼しました、編集している途中に間違えて送信してしまっています。
m.ts10806

2019/04/16 06:57

これでは回答は難しいですね。 配列の元データの情報が全く分からないので。 「自分で数値を決めて」を具体的に記載できますか?自分で決めてやるなら自分でやってくださいくらいしかアドバイスができません。 法則性があるかないかで全然違います。「自分で任意で決める」なら他人には無理ですし、きちんと法則性があるならそれを提示してください。 というかforeachの中だけはなくget_fields()自体、拡張しようとは思いませんでしたか? 取得してから並べ替えるのではなく、並べ替えたデータを取得する。どちらが楽に思いますか? いずれにしても「自分で数値を決めて」の要件次第です。
Bernadotte

2019/04/16 06:57

まだ要件として不足しているように思えます。 ・何を基準に取り出す順番を決めたいのか ・なぜそのような処理が必要なのか
bainary

2019/04/16 07:03

元にあるデータがこのように入力されていて出力されていました。 このままの配列だと、先に表示させたいものが後に表示されてしまい、データ入力自体が上手くいかないからです。 取り出す順番というよりは、表記させる順番を変えたいです。 例えば今「データ1」「データ2」「データ3」と表記したくても 「データ3」「データ2」「データ1」のようにワードプレス上で表記されてしまいます。 これを、最初に出した例のように並び替えを行いたいです。
m.ts10806

2019/04/16 07:06

「このように」とはどのようにでしょうか。文章基本ではなくデータ基本で記載してください。 var_export(get_fields()); の結果を提示して「こうしたい」という希望の配列を例示してください
m.ts10806

2019/04/16 07:08

順番を逆にしたいだけならget_fields()でやってることを昇順降順かえただけの方が良いですね。 取得したデータをいじるのはパフォーマンスにも影響があります
guest

回答3

0

おそらくできますが、具体的な元データと期待する結果を例示いただかないと
ただしい回答はできません

投稿2019/04/16 06:50

yambejp

総合スコア114883

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

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

bainary

2019/04/16 06:53

申し訳ありません。今書き足しました
yambejp

2019/04/16 06:57 編集

データ量が大量でなければ(かつ、守秘性があるデータでなければ) print json_encode(get_fields())して、結果を記載してください
bainary

2019/04/16 08:24

他企業様のなのでここには表記できませんが、今値を一つ一つに持たせ直しました
yambejp

2019/04/16 08:31

例がなければこちらも例がだせないので、 array_walk,array_map,array_filterあたりを駆使してやってみてください
guest

0

自己解決

php

1$table['カラム名']['field_name'] = 'LEDカラム名'; 2$table['カラム名']['disply_priority'] = 1; 3$table['カラム名']['value'] = $field;

配列に値を持たして、値順にソートすることで正確に表示されました。

php

1$sort=array(); 2if (count($table) > 0) { 3foreach ((array) $table as $key => $value) { 4$sort[$key] = $value['disply_priority']; 5} 6array_multisort($sort, SORT_ASC, $table);

$sortの中が空だとエラーになるので、空っぽにしてから
array_multisortで値順に並べ替えることが出来ました。

投稿2019/04/16 09:56

bainary

総合スコア58

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

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

0

php

1$table['カラム名']['field_name'] = 'LEDカラム名'; 2$table['カラム名']['disply_priority'] = 1; 3$table['カラム名']['value'] = $field;

これをasortで任意の順番に出力できると思うのですがここからなかなかうまくいきません

投稿2019/04/16 08:26

bainary

総合スコア58

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問