重新组织数组以使用组合键分隔数组



>我有一个从HTML表单中获取的数组,我需要它将其更改为所需的方式。我尝试了很多事情,但我无法实现我想要的。

网页表单:

<form class="posalji_podatke" name="posalji_podatke[]" method="post" action="store_projection.php">
<tr>
<td><div class="article_no"> <input type="hidden" class="article_no" name="freez[article_no][]" value="'.$value['article_no'].'"> '.$value['article_no'].'</div></td>
<td>'.$naziv.'</td>
<td><div class="plan_kolicina"> <input type="hidden" class="planska_kolicina" name="freez[plan_kolicina][]" value="'.$plan_kolicina.'"> '.$plan_kolicina.'</div></td>
<td><div class="plan_ruc"> <input type="hidden" class="planska_ruc" name="freez[plan_ruc][]" value="'.$plan_ruc.'"> '.myNumberFormat($plan_ruc).'</div> kn</td>
<td>'.myNumberFormat($plan_ruc_per).' %</td>
<td><div class="prodana_kol"> <input type="hidden" class="stvarna_kolicina" name="freez[stvarna_kolicina][]" value="'.$kolicina.'"> '.$kolicina.'</div></td>
<td><div class="prodani_ruc"> <input type="hidden" class="stvarni_ruc" name="freez[stvarni_ruc][]" value="'.$realizacija_ruc.'"> '.myNumberFormat($realizacija_ruc).'</div> kn</td>
<td>'.myNumberFormat($realizacija_ruc_per).' %</td>

我从该表单中获得的数组是:

Array (
[freez] => Array
(
[article_no] => Array
(
[0] => 967 86 19-03
[1] => 967 10 84-01
[2] => 967 86 18-14
[3] => 967 78 85-35
[4] => 967 15 69-75
[5] => 967 69 06-35
[6] => 966 45 19-68
[7] => 966 42 83-18
[8] => 966 73 39-88
[9] => 967 69 08-35
[10] => 966 01 00-66
[11] => 965 96 81-38
[12] => 966 73 31-38
[13] => 965 06 06-20
[14] => 966 99 72-12
[15] => 967 28 75-12
[16] => 967 20 57-16
[17] => 967 32 96-01
[18] => 967 67 64-01
[19] => 970 45 74-01
[20] => 967 67 78-01
[21] => 967 67 80-01
[22] => 967 90 79-01
[23] => 967 90 81-01
[24] => 966 77 97-01
[25] => 952 71 57-52
[26] => 967 19 36-01
[27] => 966 77 68-01
[28] => 966 77 71-01
[29] => 967 14 83-02
[30] => 966 77 99-01
[31] => 966 62 89-01
[32] => 966 62 87-01
[33] => 966 01 59-01
[34] => 966 78 00-02
[35] => 966 62 90-01
[36] => 966 78 02-01
[37] => 967 17 65-01
[38] => 966 53 24-01
[39] => 967 65 84-01
[40] => 966 78 77-01
[41] => 952 71 56-45
[42] => 967 28 42-01
[43] => 966 62 96-01
[44] => 967 07 98-01
[45] => 967 68 21-01
[46] => 967 05 42-01
[47] => 967 63 73-01
[48] => 967 10 10-01
[49] => 964 95 40-03
[50] => 967 63 67-01
[51] => 967 63 68-01
[52] => 967 98 87-01
[53] => 967 98 86-01
[54] => 967 06 93-01
[55] => 967 98 88-01
[56] => 970 45 01-01
[57] => 967 34 32-02
[58] => 970 44 90-01
[59] => 960 41 04-31
[60] => 960 41 04-21
[61] => 960 51 01-89
[62] => 960 51 01-90
[63] => 960 41 04-36
[64] => 960 51 01-93
[65] => 967 84 69-01
[66] => 967 84 71-01
[67] => 967 84 75-01
[68] => 967 64 84-01
[69] => 967 62 87-02
[70] => 967 62 88-02
[71] => 967 84 79-01
[72] => 967 84 78-01
[73] => 967 84 80-02
[74] => 967 66 97-02
[75] => 967 66 57-02
[76] => 967 09 82-02
[77] => 967 89 38-14
[78] => 967 89 39-12
[79] => 967 86 41-14
[80] => 967 86 37-14
[81] => 967 88 48-10
[82] => 967 09 83-02
[83] => 967 91 57-02
[84] => 967 97 12-01
[85] => 967 09 88-02
[86] => 967 91 61-11
[87] => 967 91 62-02
[88] => 967 85 06-01
[89] => 967 91 55-02
[90] => 967 62 84-01
[91] => 967 86 23-01
[92] => 967 64 54-16
[93] => 967 97 40-16
[94] => 967 67 29-16
[95] => 967 85 27-16
[96] => 967 67 31-16
[97] => 967 85 28-16
[98] => 967 85 30-16
[99] => 967 66 21-16
[100] => 967 65 02-16) 
[plan_kolicina] => Array
(
[0] => 750
[1] => 380
[2] => 730
[3] => 700
[4] => 800
[5] => 1150
[6] => 300
[7] => 1050
[8] => 50
[9] => 100
[10] => 65
[11] => 135
[12] => 75
[13] => 50
[14] => 58
[15] => 21
[16] => 48
[17] => 38
[18] => 80
[19] => 75
[20] => 38
[21] => 20
[22] => 55
[23] => 24
[24] => 270
[25] => 700
[26] => 105
[27] => 1350
[28] => 170
[29] => 70
[30] => 600
[31] => 700
[32] => 45
[33] => 150
[34] => 190
[35] => 50
[36] => 70
[37] => 3
[38] => 130
[39] => 40
[40] => 2
[41] => 310
[42] => 115
[43] => 18
[44] => 7
[45] => 15
[46] => 8
[47] => 17
[48] => 10
[49] => 19
[50] => 260
[51] => 400
[52] => 480
[53] => 440
[54] => 76
[55] => 360
[56] => 278
[57] => 3
[58] => 60
[59] => 204
[60] => 86
[61] => 70
[62] => 25
[63] => 22
[64] => 20
[65] => 150
[66] => 20
[67] => 5
[68] => 5
[69] => 2
[70] => 7
[71] => 9
[72] => 1
[73] => 1
[74] => 5
[75] => 10
[76] => 25
[77] => 17
[78] => 13
[79] => 5
[80] => 5
[81] => 10
[82] => 25
[83] => 14
[84] => 3
[85] => 25
[86] => 12
[87] => 19
[88] => 5
[89] => 35
[90] => 23
[91] => 5
[92] => 55
[93] => 30
[94] => 10
[95] => 55
[96] => 7
[97] => 40
[98] => 20
[99] => 3
[100] => 3
)
[plan_ruc] => Array
(
[0] => 242767,5
[1] => 178041,4
[2] => 368117,1
[3] => 476980
[4] => 615448
[5] => 1140144,5
[6] => 315642
[7] => 1209201
[8] => 73789
[9] => 139579
[10] => 78644,15
[11] => 221751
[12] => 134701,5
[13] => 0
[14] => 35912,44
[15] => 22171,8
[16] => 16164,48
[17] => 52576,04
[18] => 21704
[19] => 0
[20] => 27644,24
[21] => 23113,6
[22] => 12705,55
[23] => 8458,8
[24] => 70815,6
[25] => 224357
[26] => 47777,1
[27] => 989401,5
[28] => 124591,3
[29] => 50191,4
[30] => 614400
[31] => 785022
[32] => 45368,55
[33] => 216780
[34] => 261502,7
[35] => 92602,5
[36] => 87209,5
[37] => 3857,61
[38] => 73290,1
[39] => 38290,8
[40] => 2810,24
[41] => 165571
[42] => 73618,4
[43] => 21832,92
[44] => 11338,11
[45] => 29758,35
[46] => 20311,12
[47] => 26299,68
[48] => 13356,5
[49] => 5317,53
[50] => 68941,6
[51] => 151840
[52] => 464390,4
[53] => 396558,8
[54] => 74321,16
[55] => 455810,4
[56] => 443031,92
[57] => 5564,46
[58] => 109182,6
[59] => 572609,64
[60] => 310613,94
[61] => 317438,1
[62] => 157799,5
[63] => 127727,38
[64] => 110044,4
[65] => 1083651
[66] => 145196,4
[67] => 60130,2
[68] => 82039,75
[69] => 28839,92
[70] => 86387,42
[71] => 210851,82
[72] => 35080,78
[73] => 41883,52
[74] => 101046,65
[75] => 82370,9
[76] => 13975
[77] => 9264,15
[78] => 7837,7
[79] => 5826,1
[80] => 5713,75
[81] => 8766,1
[82] => 10812,75
[83] => 9179,94
[84] => 2968,47
[85] => 10812,75
[86] => 5969,64
[87] => 9751,94
[88] => 4541,7
[89] => 24215,45
[90] => 14270,58
[91] => 5301,5
[92] => 108743,8
[93] => 62888,4
[94] => 26870,8
[95] => 183850,15
[96] => 26504,03
[97] => 212363,6
[98] => 138934,8
[99] => 12753,54
[100] => 19055,94
)
[stvarna_kolicina] => Array
(
[0] => 414.00
[1] => 330.00
[2] => 490.00
[3] => 690.00
[4] => 770.00
[5] => 126.00
[6] => 1118.00
[7] => 988.00
[8] => 41.00
[9] => 52.00
[10] => 66.00
[11] => 126.00
[12] => 66.00
[13] => 58.00
[14] => 56.00
[15] => 10.00
[16] => 46.00
[17] => 36.00
[18] => 77.00
[19] => 0
[20] => 36.00
[21] => 19.00
[22] => 51.00
[23] => 18.00
[24] => 267.00
[25] => 707.00
[26] => 99.00
[27] => 1345.00
[28] => 168.00
[29] => 63.00
[30] => 0
[31] => 693.00
[32] => 41.00
[33] => 144.00
[34] => 168.00
[35] => 50.00
[36] => 70.00
[37] => 0
[38] => 130.00
[39] => 0
[40] => 3.00
[41] => 310.00
[42] => 107.00
[43] => 17.00
[44] => 6.00
[45] => 14.00
[46] => 8.00
[47] => 16.00
[48] => 12.00
[49] => 17.00
[50] => 277.00
[51] => 438.00
[52] => 0
[53] => 0
[54] => 363.00
[55] => 0
[56] => 0
[57] => 0
[58] => 0
[59] => 0
[60] => 181.00
[61] => 0
[62] => 0
[63] => 0
[64] => 0
[65] => 123.00
[66] => 12.00
[67] => 0
[68] => 0
[69] => 0
[70] => 0
[71] => 1.00
[72] => 0
[73] => 0
[74] => 3.00
[75] => 18.00
[76] => 11.00
[77] => 1.00
[78] => 5.00
[79] => 0
[80] => 0
[81] => 5.00
[82] => 0
[83] => 0
[84] => 0
[85] => 5.00
[86] => 4.00
[87] => 5.00
[88] => 0
[89] => 4.00
[90] => 17.00
[91] => 5.00
[92] => 23.00
[93] => 0
[94] => 0
[95] => 26.00
[96] => 4.00
[97] => 27.00
[98] => 8.00
[99] => 0
[100] => 2.00
)
[stvarni_ruc] => Array
(
[0] => 145648.76
[1] => 157115.52
[2] => 244852.53
[3] => 438931.48
[4] => 572497.62
[5] => 122336.09
[6] => 1049849.74
[7] => 1119343.54
[8] => 59237.84
[9] => 68106.98
[10] => 96078.64
[11] => 176842.83
[12] => 118581.00
[13] => 99181.28
[14] => 34401.46
[15] => 11262.95
[16] => 16970.98
[17] => 49393.38
[18] => 19029.19
[19] => 0
[20] => 30884.49
[21] => 20906.26
[22] => 13078.78
[23] => 6966.74
[24] => 74009.55
[25] => 305741.74
[26] => 47103.27
[27] => 821475.24
[28] => 129386.56
[29] => 44850.82
[30] => 0
[31] => 667621.28
[32] => 42625.27
[33] => 214145.26
[34] => 220182.31
[35] => 94638.87
[36] => 90331.17
[37] => 0
[38] => 71034.51
[39] => 0
[40] => 3867.54
[41] => 163295.92
[42] => 69369.88
[43] => 23763.83
[44] => 9882.22
[45] => 29686.98
[46] => 20789.23
[47] => 26490.86
[48] => 15855.51
[49] => 4800.25
[50] => 131020.87
[51] => 248612.27
[52] => 0
[53] => 0
[54] => 341099.80
[55] => 0
[56] => 0
[57] => 0
[58] => 0
[59] => 0
[60] => 729290.05
[61] => 0
[62] => 0
[63] => 0
[64] => 0
[65] => 838369.61
[66] => 105917.94
[67] => 0
[68] => 0
[69] => 0
[70] => 0
[71] => 24487.98
[72] => 0
[73] => 0
[74] => 63398.74
[75] => 142510.58
[76] => 6123.60
[77] => 1249.38
[78] => 4682.50
[79] => 0
[80] => 0
[81] => 5915.67
[82] => 0
[83] => 0
[84] => 0
[85] => 2341.71
[86] => 2670.71
[87] => 3864.25
[88] => 0
[89] => 3030.76
[90] => 11855.71
[91] => 6289.68
[92] => 42620.48
[93] => 0
[94] => 0
[95] => 89556.44
[96] => 16532.85
[97] => 160561.48
[98] => 44517.85
[99] => 0
[100] => 13012.87
[101] => 0
[102] => 0
[103] => 2733038.88
[104] => 908686.44
[105] => 2459420.03
[106] => 300767.19
[107] => 383612.96
[108] => 82092.06
[109] => 171824.31
[110] => 7405.99                    
)
)

(

期望输出:

array (
[article_no] => 967 86 19-03
[planirana_kol] => 100
[planirani_ruc] => 1243,56
[stvarna_kol] => 142
[stvarni_ruc] => 874,54
)
array (
[article_no] => 967 10 84-01
[planirana_kol] => 300
[planirani_ruc] => 567,56
[stvarna_kol] => 284
[stvarni_ruc] => 777,54
)

你能指出我一个正确的方向吗?我只是被困住了,我无法摆脱它。

将表单重建为:

<form class="posalji_podatke" name="posalji_podatke[]" method="post" action="store_projection.php">
<tr>
<td><div class="article_no"> <input type="hidden" class="article_no" name="freez[0][article_no]" value="'.$value['article_no'].'"> '.$value['article_no'].'</div></td>
<td>'.$naziv.'</td>
<td><div class="plan_kolicina"> <input type="hidden" class="planska_kolicina" name="freez[0][plan_kolicina]" value="'.$plan_kolicina.'"> '.$plan_kolicina.'</div></td>
<td><div class="plan_ruc"> <input type="hidden" class="planska_ruc" name="freez[0][plan_ruc]" value="'.$plan_ruc.'"> '.myNumberFormat($plan_ruc).'</div> kn</td>
<td>'.myNumberFormat($plan_ruc_per).' %</td>
<td><div class="prodana_kol"> <input type="hidden" class="stvarna_kolicina" name="freez[0][stvarna_kolicina]" value="'.$kolicina.'"> '.$kolicina.'</div></td>
<td><div class="prodani_ruc"> <input type="hidden" class="stvarni_ruc" name="freez[0][stvarni_ruc]" value="'.$realizacija_ruc.'"> '.myNumberFormat($realizacija_ruc).'</div> kn</td>
<td>'.myNumberFormat($realizacija_ruc_per).' %</td>

请注意,我name您的输入作为name="freez[0][article_no]"

您还需要显式设置索引,即:

name="freez[0][article_no]"
name="freez[1][article_no]"
name="freez[2][article_no]"
// etc
// NOT name="freez[][article_no]"

有了这样的input命名$_POST数组将是所需的结构。

最新更新