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

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

新規登録して質問してみよう
ただいま回答率
85.35%
多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

WordPress

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

PHP

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

1055閲覧

カスタムフィールドの値を配列に入れたい

su_da221

総合スコア59

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

WordPress

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

PHP

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2021/06/23 07:39

前提・実現したいこと

繰り返しフィールドでサブフィールドが2つあります。
1つ目 datepicker 日付を選択
2つ目 チェックボックス 時間を選択
イメージ説明
上記のような画面です。

フィールド情報
イメージ説明

この選択した日付、時間を配列に入れたいです。
チェックボックスは選択した物以外を表示したいです。

形としては下記のような感じです。

2021-06-20 : ["11:00", "14:00"]

このような形をなんという配列なのかもわからず調べようがないです。
なぜこのような配列を作りたいかというと選択した日付に応じて次のセレクトボックスの中身を変更したいからです。
こちらが参考サイトです。

フォームではこのような感じで使用します。

// 日付を取得 <input type="text" id="datepicker1" name="date1" class="wpcf7-form-control datepicker">  // 時間を選択 <select> <option></option> ・・・ </select>

日付が選択されたらその値を取得して、その値と一致する配列の中身(時間)をセレクトボックスに表示したいです。

補足情報(FW/ツールのバージョンなど)

wordpress
カスタムフィールド:acf

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

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

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

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

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

guest

回答1

0

ベストアンサー

datepickerで日付を取得して、その日付の予約できない時間を除いたセレクトボックスを表示したい と何が違うのかわかりませんが、ヒントだけ...


RepeaterCheckbox を組み合わせて取得できませんか?

「終日不可」をどうするのかわかりませんが、チェックが入っているものを取得するなら、

$a = []; if( have_rows('no-time-grp') ){ while( have_rows('no-time-grp') ){ the_row(); $days = get_sub_field('day'); $times = get_sub_field('time'); $a[$days] = $times; }; }else{ // Do something } // 確認用コード echo "<!-- -->\n"; var_dump($a); $b = json_encode($a); var_dump($b); echo "<!-- -->\n";

で、どうでしょうか。

質問にある例のように 2021-06-20 の "11:00" と "14:00" にチェックが入っているとしたら、

var_dump の結果は、

array(1) { ["2021-06-20"]=> array(2) { [0]=> string(5) "11:00" [1]=> string(5) "14:00" } }

で、JSONにエンコードした結果は、

string(32) "{"2021-06-20":["11:00","14:00"]}"

になります。

チェック入れていないのを取得する部分や JavaScript とやり取りする部分は考えてみてください。

投稿2021/06/24 05:21

CHERRY

総合スコア25218

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

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

su_da221

2021/06/25 06:45

ありがとうございます! 無事に作りたい配列が作成できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問