食べ物のIDは1〜10個ランダムでランダムで生成されます
その中で5個1組で配列を生成していきたいと考えているのですが、うまくいかず迷っています。
現状の下記の処理では1〜5個生成された時はうまくいくのですが、6〜10個生成された時に2つ目の配列が作られずその作り方がわからない状態です。
$slotFoodIdArr = array(); $notSetSlotNum = 0; $slotUserFoodIdStr = 1; $foodUserIdStr = 0; $ramInt = rand(1,10); for ($i = 1; $i <= $ramInt; $i++) { $foodIdArray['food'][] = array( 'foodId' => $i ); } foreach ($foodIdArray['food'] as $foodId) { $slotFoodIdArr += array( 'slotUserFoodId' . $slotUserFoodIdStr => $foodId['foodId'] ); if (${"slotUserFoodId" . $slotUserFoodIdStr} == 0) { $notSetSlotNum++; } if (count($foodIdArray['food']) < 5) { if ($slotUserFoodIdStr == count($foodIdArray['food'])) { for ($i = $slotUserFoodIdStr; $i <= 5; $i++) { $slotFoodIdArr += array( 'slotUserFoodId' . $i => 0 ); } $userSlotList[$foodUserIdStr] = $slotFoodIdArr; $foodUserIdStr++; $slotUserFoodIdStr = 0; $slotFoodIdArr = array(); } } else { if ($slotUserFoodIdStr == 5) { $userSlotList[$foodUserIdStr] = $slotFoodIdArr; $foodUserIdStr++; $slotUserFoodIdStr = 0; $slotFoodIdArr = array(); } } $slotUserFoodIdStr++; }
5個作られた場合
[0] => Array ( [slotUserFoodId1] => 1 [slotUserFoodId2] => 2 [slotUserFoodId3] => 3 [slotUserFoodId4] => 4 [slotUserFoodId5] => 5 )
4個作られた場合
[0] => Array ( [slotUserFoodId1] => 1 [slotUserFoodId2] => 2 [slotUserFoodId3] => 3 [slotUserFoodId4] => 4 [slotUserFoodId5] => 0 )
このように5つまでで5以下のものは0を入れて生成するようにしています。
やりたいことは6〜10個作られた時に下記のような配列が作れるようにしたいです。
仮に8個乱数で出た場合
[0] => Array ( [slotUserFoodId1] => 1 [slotUserFoodId2] => 2 [slotUserFoodId3] => 3 [slotUserFoodId4] => 4 [slotUserFoodId5] => 5 ) [1] => Array ( [slotUserFoodId1] => 6 [slotUserFoodId2] => 7 [slotUserFoodId3] => 8 [slotUserFoodId4] => 0 [slotUserFoodId5] => 0 )
文章が下手で伝わりにくいところがあるかと思いますが、ご教授いただけると大変助かります。

0 コメント