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

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

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

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

Q&A

解決済

2回答

2443閲覧

配列の中身を2つにわけたい

terusan

総合スコア13

PHP

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

0グッド

0クリップ

投稿2016/11/24 04:05

連想配列の中身を2つに分けて格納したいと考えています。
なにかいい方法はありませんでしょうか?
配列を$rowにいれたときのキーを取得というのがうまくいきません。
そのときのキーの取得ができたらそれをswitch文で切り分けできるとおもったのですが…
おわかりになる方どうぞよろしくお願いします。

php

1 foreach($list as $row){ 2 -----この部分----- 3 $list1 = $row[]; 4 $list2 = $row[]; 5 ----------------- 6 var_dump(list1); 7 var_dump(list2); 8 }
分ける前の配列 list( [date] => 2016/11/24 [0] => array([id] => 1 [note] => example1) [1] => array([id] => 2 [note] => example2) [renraku_id] => 30 [renraku_memo] => example ) 分けた後の配列 list1( [0] => array([id] => 1 [note] => example1) [1] => array([id] => 2 [note] => example2) ) list2( [date] => 2016/11/24 [renraku_id] => 30 [renraku_memo] => example )

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

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

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

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

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

guest

回答2

0

ベストアンサー

PHP

1// 配列$rowのkeyのみをarrayとして抽出する 2$keyArray = array_keys($row); 3// 配列$rowのvalueのみをarrayとして抽出する 4$valueArray = array_values($row);

投稿2016/11/24 04:09

Y.H.

総合スコア7914

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

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

terusan

2016/11/24 04:13

ありがとうございます!
guest

0

■方法1
list2に取り出すキーが決まっているのであれば、先に取り出してしまう

PHP

1$list2Keys = array('date', 'renraku_id', 'renraku_memo'); 2foreach($list2Keys as $key) { 3 //対応するキーが$list内に存在してたらその値を代入し、$listから削除。存在しなければnullを代入 4 if(isset($list[$key]) { 5 $list2[$key] = $list[$key]; 6 unset($list[$key]); 7 } else { 8 $list2[$key] = null; 9 } 10} 11 12//$list1は、この時点で$listと同じはず(取り出したキーは削除されているので) 13//あえて明示的に分けるなら代入し直し 14$list1 = $list;

■方法2
$listのキーによってどちらの配列に入れるか逐次判断する

PHP

1$list2Keys = array('date', 'renraku_id', 'renraku_memo'); 2foreach($list as $key => $row) { 3 if(in_array($key, $list2Keys)) { 4 //$list2Keysに含まれるキーだったら$list2に代入 5 $list2[$key] = $row; 6 } else { 7 $list1[$key] = $row; 8 } 9}

投稿2016/11/24 04:16

kunai

総合スコア5405

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

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

terusan

2016/11/24 04:20

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問