###やりたいこと
複数行のデータを取り扱うとき、最大行数(今回は10行)に達していない場合、最大行数になるようにする処理
###テストデータ
PHP
1$TestDate = []; 2$TestDate[] = ['20140425230', 'A', '09:00']; 3$TestDate[] = ['20140425231', 'B', '10:00']; 4$TestDate[] = ['20140425233', 'C', '12:00']; 5$TestDate[] = ['20140425235', 'D', '14:00'];
###今回のテストで最終的にしたいデータ
PHP
1$TestDate[] = ['20140425230', 'A', '09:00']; 2$TestDate[] = ['20140425231', 'B', '10:00']; 3$TestDate[] = ['20140425232', '', '']; 4$TestDate[] = ['20140425233', 'C', '12:00']; 5$TestDate[] = ['20140425234', '', '']; 6$TestDate[] = ['20140425235', 'D', '14:00']; 7$TestDate[] = ['20140425236', '', '']; 8$TestDate[] = ['20140425237', '', '']; 9$TestDate[] = ['20140425238', '', '']; 10$TestDate[] = ['20140425239', '', ''];
###一応やってはみたこと
考えが足りないのですが、、、、
1.最大が10行なら、現在の行数を数えて残りを追加
これだと結局2014042523[0~9]のどれなのかわからない
※重複はNGです。
2.for文で回してみる?
PHP
1// 変わらない共通部分 2$dateNum = '2014042523'; 3 4// 最大10行ならfor文で回してみたらどうなんだろうか? 5for($i = 0; $i < 10; $i++) { 6 // 2014~~の部分が[0~9]あるのかどうか 7 $id = in_array($Ymd.$car.$i, $TestDate[$i]); 8 // 無い場合は$dateNum.$iで[2014042523[0~9]]を作ってみる 9 if(!$id) { 10 $TestDate[] = [$dateNum.$i, '', '']; 11 } else { 12 13 } 14}
###やってみたことの②の結果
PHP
1array(12) { 2 [0]=> 3 array(3) { 4 [0]=> 5 string(11) "20140425230" 6 [1]=> 7 string(1) "A" 8 [2]=> 9 string(5) "09:00" 10 } 11 [1]=> 12 array(3) { 13 [0]=> 14 string(11) "20140425231" 15 [1]=> 16 string(1) "B" 17 [2]=> 18 string(5) "10:00" 19 } 20 [2]=> 21 array(3) { 22 [0]=> 23 string(11) "20140425233" 24 [1]=> 25 string(1) "C" 26 [2]=> 27 string(5) "12:00" 28 } 29 [3]=> 30 array(3) { 31 [0]=> 32 string(11) "20140425235" 33 [1]=> 34 string(1) "D" 35 [2]=> 36 string(5) "14:00" 37 } 38 [4]=> 39 array(3) { 40 [0]=> 41 string(11) "20140425232" 42 [1]=> 43 string(0) "" 44 [2]=> 45 string(0) "" 46 } 47 [5]=> 48 array(3) { 49 [0]=> 50 string(11) "20140425233" 51 [1]=> 52 string(0) "" 53 [2]=> 54 string(0) "" 55 } 56 [6]=> 57 array(3) { 58 [0]=> 59 string(11) "20140425234" 60 [1]=> 61 string(0) "" 62 [2]=> 63 string(0) "" 64 } 65 [7]=> 66 array(3) { 67 [0]=> 68 string(11) "20140425235" 69 [1]=> 70 string(0) "" 71 [2]=> 72 string(0) "" 73 } 74 [8]=> 75 array(3) { 76 [0]=> 77 string(11) "20140425236" 78 [1]=> 79 string(0) "" 80 [2]=> 81 string(0) "" 82 } 83 [9]=> 84 array(3) { 85 [0]=> 86 string(11) "20140425237" 87 [1]=> 88 string(0) "" 89 [2]=> 90 string(0) "" 91 } 92 [10]=> 93 array(3) { 94 [0]=> 95 string(11) "20140425238" 96 [1]=> 97 string(0) "" 98 [2]=> 99 string(0) "" 100 } 101 [11]=> 102 array(3) { 103 [0]=> 104 string(11) "20140425239" 105 [1]=> 106 string(0) "" 107 [2]=> 108 string(0) "" 109 } 110}
###問題点
無い頭でやってあと一歩なのかな、、、とか思うところまではやったのですが、、、
当然の話今回のケースだと、20140425233と20140425235の部分は重複してしまいました。
理由的な部分はそもそもテストデータを上から確認しているときに、20140425232が存在していない時点でそこから下がfalseになっているからとは思っているんですが、、、
ここから、又はそもそもの考え方が違うのかとは思いますが、どのような形にすると良いでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/25 01:59