よろしくお願いします。
$hoge = array( "one" => array("abc" => "100", "def" => "200", "ghi" => "300"),
"two" => array("abc" => "110", "def" => "210", "ghi" => "310"),
"three" => array("abc" => "120", "def" => "220", "ghi" => "320")
"four" => array("abc" => "130", "def" => "230", "ghi" => "330")
);
というような配列があったとき、
abcが110以下のときと、110より大きい場合で分割した配列を
用意したいと考えてます。
具体的には、
$hoge1 = array( "one" => array("abc" => "100", "def" => "200", "ghi" => "300"),
"two" => array("abc" => "110", "def" => "210", "ghi" => "310"),
);
と
$hoge2 = array( "three" => array("abc" => "120", "def" => "220", "ghi" => "320")
"four" => array("abc" => "130", "def" => "230", "ghi" => "330")
);
に分割したいと考えています。
どのように記述すればよいのでしょうか?
No.6ベストアンサー
- 回答日時:
あ。
>print_r($arr[0]['Issue']);} //071025
回したい大本の二次配列は$arrなのですかね。
>foreach($hoge as $key => $arr)
回したい変数の名前が$hogeになってます。
$hogeを$arrにすれば良いですけども、$arrがかぶってしまって変な挙動になる恐れがあります。
>foreach($hoge as $key => $arr)
foreach([回したい配列] as [配列のキー] => [配列の値])
なので各変数を適切なものに書き換えましょう。
あとNo.1の方に提示していただいたforeachの項目を穴が開くほどよく読みましょう。
foreachを使用してなんとか解決しました。
ただ配列の結合が上手くいかなかったので
文字列の結合を使用してごまかしました。
大変助かりました、有難うございました。
No.5
- 回答日時:
閉じ括弧が一つ足らなく見えますが
コピペミスですかね。
Noticeが出るならば$arr['Issue']をきちんと設定しておかねばなりません。
値が入ってこない可能性がある場合は
if(isset($arr['Issue']) { // ←'Issue'をキーとした値が存在するか
といったチェックをどこかでやる必要があります。
No.4
- 回答日時:
あ。
$hoge1 = array();
$hoge2 = array();
foreach($hoge as $key => $arr)
{
if($arr["abc"] <= 110)
{
$hoge1[$key] = $hoge[$key]; //<-修正
}
else
{
$hoge2[$key] = $hoge[$key]; //<-修正
}
}
この回答への補足
ご丁寧な返信ありがとうございます。
しかしどうも上手くいきません。
以下置き換えたソースです。
$arr_p = array();
$arr_r = array();
foreach($hoge as $key => $arr)
{
if($arr['Issue'] <= $TODAY) //←ここでエラーがでます。
{
$arr_r[$key] = $hoge[$key];
}
else
{
$arr_p[$key] = $hoge[$key];
}
print_r($TODAY); //071024
print_r($arr[0]['Issue']);} //071025
No.3
- 回答日時:
失礼、条件が逆だった。
あとhoge1,hoge2へ入れる変数もおかしかった。
$hoge1 = array();
$hoge2 = array();
foreach($hoge as $key => $arr)
{
if($arr["abc"] <= 110)
{
$hoge1[$key] = $arr[$key];
}
else
{
$hoge2[$key] = $arr[$key];
}
}
No.2
- 回答日時:
$hoge1 = array();
$hoge2 = array();
foreach($hoge as $key => $arr)
{
if($arr["abc"] >= 110)
{
$hoge1[$key] = $arr;
}
else
{
$hoge2[$key] = $arr;
}
}
No.1
- 回答日時:
foreach
http://www.php.net/manual/ja/control-structures. …
で$hogeを全走査して
array_push
http://www.php.net/manual/ja/function.array-push …
でhoge1とhoge2に振り分ける
辺りでは?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux bashでシングルクォート内の変数の組み込み方教えてください。 2 2023/02/14 19:30
- Excel(エクセル) EXCELで同一セル内で自動的に改行されてしまう(難問) 6 2023/04/16 00:51
- 数学 △ABC≡△DEF≡△GHIという感じで書き表すのはダメですか? 3 2022/10/23 01:58
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- Excel(エクセル) Excelで、半角スペースをTABに変換する 5 2022/10/18 14:18
- その他(プログラミング・Web制作) listへのappendが出来ない件 1 2022/12/06 21:44
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/03/09 14:24
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 10:07
- Windows 10 windows11にて管理者アカウントを削除してしまいました。 現在どのような状況かもあまり分かって 5 2023/01/02 20:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
重複確認
-
多次元配列を、1次元の配列にす...
-
if文などで使用される条件式で...
-
ラジオボタンをランダムに表示...
-
マッチング処理(1:N)
-
二次元配列の分割
-
元号の表示
-
下記のサイトを参考に,例えばAB...
-
テーブルデータ表示
-
関数の引数に配列を初期化なしで。
-
Delphi XEの警告文を消したい
-
$_SESSIONに二次元配列を使える...
-
配列をループでたくさん宣言し...
-
CSVデータの行数カウントをした...
-
URLのサブドメインとドメイン部...
-
読み(あ行~わ行)ごとに分け...
-
CSVデータを使ったページングと...
-
ネストが深い時のforeachはどう...
-
file_existsでファイル名の部分...
-
CArrayのソート
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
重複確認
-
foreachで上限回数指定方法また...
-
マッチング処理(1:N)
-
Excel VBAでフィルター後の対象...
-
VB.NET で 二次元のハッシュは...
-
多次元配列を、1次元の配列にす...
-
SELECT 使用時の bindValue の...
-
Smartyでインクリメント
-
PHPでこのコード自体に意味は無...
-
PHP、{}記号の意味
-
配列を比較して同じものがあっ...
-
phpでforeachの中にforeachがあ...
-
多次元配列の中で条件に合う要...
-
sqlのデーターを『あ行』『か行...
-
キーが倍数の時の値の存在チェ...
-
ジャグ配列
-
foreachで配列を、左から縦3列...
-
ラジオボタンをランダムに表示...
-
三重県南部の温泉
-
構造体の中でユーザー定義型の...
おすすめ情報