はじめまして、ご覧になっていただきありがとうございます。
質問なんですが、仕事のことでカンマ区切りの言葉それぞれの
全組み合わせをphpでもとめたいのですが、
基本はできたのですがどうしても最後の方のforeachの入れ子で
エラーが出てしまいます。
foreachにわたす変数が配列じゃないと出てくるのですが
配列を入れてるつもりなのでお手上げになってしまいました。
どなたかわかる方がいらっしゃればよろしくお願いします。
結果としてこんなカンジに出力できたらと思ってます。
http://qiita.com/mpyw/items/e0b6e0842a460b3f901f#1-2
php
1 2 3 $errorm = 's-non-used'; 4 5 6 //キーワードの直積の一覧を作成 7 //全変数を宣言 8 9 $k['a'] = array( 10 11 'product' => 'pc,phone,heater', 12 13 'event' => '', 14 15 'star' => '', 16 17 'number' => '', 18 19 'trouble' => '', 20 21 'real' => '', 22 23 'desire' => '', 24 25 'price' => '5800,4200,3400,980,1980,580', 26 27 'labor' => '今売れてます,安い,配送無料,無料保証,サービス第一,安全第一,他社よりすごい,今すぐお値引き,係員にお申し付けください', 28 29 ); 30 31 32 //各変数にエラーフラグを格納 33 34 foreach ($k['a'] as $key => $value){ 35 36 if($value === ''){ 37 38 $value = $errorm; 39 40//本来はelseでGETから変数を取得しています。 41 42 } 43 } 44 45 46 //各変数をカンマで切り分けて配列にする 47 foreach ($k['a'] as $value){ 48 49 if($value === $errorm){ 50 51 unset($value); 52 53 } else { 54 55 56 $value = explode( ',', preg_replace ("/,+/",',',$value)); 57 58 } 59 60 } 61 62//指摘により追加しました 63$words = $k; 64 $k = ''; 65 66 //全nameに対しての繰り返し処理ex)product,price,star... 67 foreach ($words['a'] as $key => $value){ 68 69 //受け入れ配列の要素数を入力配列の要素数分増やす 70 71 if($k === ''){ 72 73 $k = $value; 74 75 } else { 76 77 $t = 0; 78 79 80//ここから下でエラーが出てます。 81 82 //新しく入れる分重複要素を増やす 83 foreach($k as $value2){ 84 85 foreach($value as $i){ 86 87 $depot[] = $value2; 88 89 } 90 91 } 92 93 //増やした重複要素に新しく入れる分を全パターン入れる 94 foreach($k as $i){ 95 96 foreach ($value as $value2){ 97 98 $depot["$t"]["$key"] = $value2; 99 100 ++$t; 101 102 } 103 104 } 105 106 $k = $depot; 107 108 unset($depot); 109 110 } 111 112 } 113 114
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。