Как изменить значение внутри ассоциативного массива без добавления нового массива - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь показать только год строки, которая также содержит дни и месяцы, а затем обновить значение datum внутри моего массива, чтобы показать только год. Только показ года не имеет значения, но вместо замены значения datum он добавляет новый массив. Как я могу предотвратить это?

Мой массив сейчас:

Array
(
    [0] => Array
        (
            [datum] => 2019
        )

    [1] => Array
        (
            [infoid] => 215
            [company_id] => 57
            [datum] => 2019-04-10
            [tid] => 327
            [catid] => 202
            [info_id] => 215
            [questionid] => 932
            [cid] => 202
            [answer] => ok
        )

    [2] => Array
        (
            [datum] => 2019
        )

    [3] => Array
        (
            [infoid] => 215
            [company_id] => 57
            [datum] => 2019-04-10
            [tid] => 327
            [catid] => 202
            [info_id] => 215
            [questionid] => 930
            [cid] => 202
            [answer] => ok
        )

    [4] => Array
        (
            [datum] => 2019
        )

    [5] => Array
        (
            [infoid] => 215
            [company_id] => 57
            [datum] => 2019-04-10
            [tid] => 327
            [catid] => 202
            [info_id] => 215
            [questionid] => 928
            [cid] => 202
            [answer] => ok
        )

    [6] => Array
        (
            [datum] => 2019
        )

    [7] => Array
        (
            [infoid] => 215
            [company_id] => 57
            [datum] => 2019-04-10
            [tid] => 327
            [catid] => 202
            [info_id] => 215
            [questionid] => 926
            [cid] => 202
            [answer] => ok
        )

    [8] => Array
        (
            [datum] => 2019
        )

    [9] => Array
        (
            [infoid] => 215
            [company_id] => 57
            [datum] => 2019-04-10
            [tid] => 327
            [catid] => 202
            [info_id] => 215
            [questionid] => 924
            [cid] => 202
            [answer] => ok
        )

    [10] => Array
        (
            [datum] => 2019
        )

    [11] => Array
        (
            [infoid] => 215
            [company_id] => 57
            [datum] => 2019-04-10
            [tid] => 327
            [catid] => 202
            [info_id] => 215
            [questionid] => 922
            [cid] => 202
            [answer] => ok
        )

    [12] => Array
        (
            [datum] => 2019
        )

    [13] => Array
        (
            [infoid] => 215
            [company_id] => 57
            [datum] => 2019-04-10
            [tid] => 327
            [catid] => 202
            [info_id] => 215
            [questionid] => 920
            [cid] => 202
            [answer] => ok
        )

    [14] => Array
        (
            [datum] => 2019
        )

    [15] => Array
        (
            [infoid] => 215
            [company_id] => 57
            [datum] => 2019-04-10
            [tid] => 327
            [catid] => 202
            [info_id] => 215
            [questionid] => 918
            [cid] => 202
            [answer] => fout
        )

    [16] => Array
        (
            [datum] => 2019
        )

    [17] => Array
        (
            [infoid] => 215
            [company_id] => 57
            [datum] => 2019-04-10
            [tid] => 327
            [catid] => 202
            [info_id] => 215
            [questionid] => 916
            [cid] => 202
            [answer] => ok
        )

    [18] => Array
        (
            [datum] => 2020
        )

    [19] => Array
        (
            [infoid] => 236
            [company_id] => 57
            [datum] => 2020-03-21
            [tid] => 324
            [catid] => 230
            [info_id] => 236
            [questionid] => 1192
            [cid] => 230
            [answer] => ok
        )

    [20] => Array
        (
            [datum] => 2020
        )

    [21] => Array
        (
            [infoid] => 236
            [company_id] => 57
            [datum] => 2020-03-21
            [tid] => 324
            [catid] => 230
            [info_id] => 236
            [questionid] => 1191
            [cid] => 230
            [answer] => ok
        )

    [22] => Array
        (
            [datum] => 2020
        )

    [23] => Array
        (
            [infoid] => 236
            [company_id] => 57
            [datum] => 2020-03-21
            [tid] => 324
            [catid] => 230
            [info_id] => 236
            [questionid] => 1190
            [cid] => 230
            [answer] => fout
        )

    [24] => Array
        (
            [datum] => 2020
        )

    [25] => Array
        (
            [infoid] => 236
            [company_id] => 57
            [datum] => 2020-03-21
            [tid] => 324
            [catid] => 230
            [info_id] => 236
            [questionid] => 1189
            [cid] => 230
            [answer] => ok
        )

    [26] => Array
        (
            [datum] => 2019
        )

    [27] => Array
        (
            [infoid] => 235
            [company_id] => 57
            [datum] => 2019-04-12
            [tid] => 329
            [catid] => 229
            [info_id] => 235
            [questionid] => 1187
            [cid] => 229
            [answer] => ok
        )

    [28] => Array
        (
            [datum] => 2019
        )

    [29] => Array
        (
            [infoid] => 235
            [company_id] => 57
            [datum] => 2019-04-12
            [tid] => 329
            [catid] => 228
            [info_id] => 235
            [questionid] => 1186
            [cid] => 228
            [answer] => ok
        )

    [30] => Array
        (
            [datum] => 2019
        )

    [31] => Array
        (
            [infoid] => 235
            [company_id] => 57
            [datum] => 2019-04-12
            [tid] => 329
            [catid] => 228
            [info_id] => 235
            [questionid] => 1185
            [cid] => 228
            [answer] => ok
        )

    [32] => Array
        (
            [datum] => 2020
        )

    [33] => Array
        (
            [infoid] => 236
            [company_id] => 57
            [datum] => 2020-03-21
            [tid] => 324
            [catid] => 230
            [info_id] => 236
            [questionid] => 1188
            [cid] => 230
            [answer] => ok
        )

    [34] => Array
        (
            [datum] => 2019
        )

    [35] => Array
        (
            [infoid] => 215
            [company_id] => 57
            [datum] => 2019-04-10
            [tid] => 327
            [catid] => 202
            [info_id] => 215
            [questionid] => 934
            [cid] => 202
            [answer] => ok
        )

    [36] => Array
        (
            [datum] => 2019
        )

    [37] => Array
        (
            [infoid] => 215
            [company_id] => 57
            [datum] => 2019-04-10
            [tid] => 327
            [catid] => 202
            [info_id] => 215
            [questionid] => 936
            [cid] => 202
            [answer] => ok
        )

    [38] => Array
        (
            [datum] => 2019
        )

    [39] => Array
        (
            [infoid] => 215
            [company_id] => 57
            [datum] => 2019-04-10
            [tid] => 327
            [catid] => 202
            [info_id] => 215
            [questionid] => 938
            [cid] => 202
            [answer] => ok
        )

    [40] => Array
        (
            [datum] => 2019
        )

    [41] => Array
        (
            [infoid] => 215
            [company_id] => 57
            [datum] => 2019-04-10
            [tid] => 327
            [catid] => 202
            [info_id] => 215
            [questionid] => 940
            [cid] => 202
            [answer] => ok
        )

    [42] => Array
        (
            [datum] => 2019
        )

    [43] => Array
        (
            [infoid] => 215
            [company_id] => 57
            [datum] => 2019-04-10
            [tid] => 327
            [catid] => 202
            [info_id] => 215
            [questionid] => 942
            [cid] => 202
            [answer] => ok
        )

    [44] => Array
        (
            [datum] => 2019
        )

    [45] => Array
        (
            [infoid] => 215
            [company_id] => 57
            [datum] => 2019-04-10
            [tid] => 327
            [catid] => 202
            [info_id] => 215
            [questionid] => 944
            [cid] => 202
            [answer] => ok
        )

    [46] => Array
        (
            [datum] => 2019
        )

    [47] => Array
        (
            [infoid] => 215
            [company_id] => 57
            [datum] => 2019-04-10
            [tid] => 327
            [catid] => 202
            [info_id] => 215
            [questionid] => 946
            [cid] => 202
            [answer] => ok
        )

    [48] => Array
        (
            [datum] => 2019
        )

    [49] => Array
        (
            [infoid] => 215
            [company_id] => 57
            [datum] => 2019-04-10
            [tid] => 327
            [catid] => 202
            [info_id] => 215
            [questionid] => 948
            [cid] => 202
            [answer] => ok
        )

    [50] => Array
        (
            [datum] => 2019
        )

    [51] => Array
        (
            [infoid] => 235
            [company_id] => 57
            [datum] => 2019-04-12
            [tid] => 329
            [catid] => 228
            [info_id] => 235
            [questionid] => 1184
            [cid] => 228
            [answer] => ok
        )

    [52] => Array
        (
            [datum] => 2019
        )

    [53] => Array
        (
            [infoid] => 230
            [company_id] => 57
            [datum] => 2019-04-20
            [tid] => 327
            [catid] => 220
            [info_id] => 230
            [questionid] => 1154
            [cid] => 220
            [answer] => ok
        )

    [54] => Array
        (
            [datum] => 2019
        )

    [55] => Array
        (
            [infoid] => 230
            [company_id] => 57
            [datum] => 2019-04-20
            [tid] => 327
            [catid] => 220
            [info_id] => 230
            [questionid] => 1153
            [cid] => 220
            [answer] => ok
        )

    [56] => Array
        (
            [datum] => 2019
        )

    [57] => Array
        (
            [infoid] => 230
            [company_id] => 57
            [datum] => 2019-04-20
            [tid] => 327
            [catid] => 220
            [info_id] => 230
            [questionid] => 1152
            [cid] => 220
            [answer] => ok
        )

    [58] => Array
        (
            [datum] => 2019
        )

    [59] => Array
        (
            [infoid] => 230
            [company_id] => 57
            [datum] => 2019-04-20
            [tid] => 327
            [catid] => 220
            [info_id] => 230
            [questionid] => 1151
            [cid] => 220
            [answer] => ok
        )

    [60] => Array
        (
            [datum] => 2019
        )

    [61] => Array
        (
            [infoid] => 230
            [company_id] => 57
            [datum] => 2019-04-20
            [tid] => 327
            [catid] => 220
            [info_id] => 230
            [questionid] => 1150
            [cid] => 220
            [answer] => ok
        )

    [62] => Array
        (
            [datum] => 2019
        )

    [63] => Array
        (
            [infoid] => 230
            [company_id] => 57
            [datum] => 2019-04-20
            [tid] => 327
            [catid] => 220
            [info_id] => 230
            [questionid] => 1149
            [cid] => 220
            [answer] => ok
        )

    [64] => Array
        (
            [datum] => 2019
        )

    [65] => Array
        (
            [infoid] => 230
            [company_id] => 57
            [datum] => 2019-04-20
            [tid] => 327
            [catid] => 220
            [info_id] => 230
            [questionid] => 1147
            [cid] => 220
            [answer] => ok
        )

    [66] => Array
        (
            [datum] => 2019
        )

    [67] => Array
        (
            [infoid] => 230
            [company_id] => 57
            [datum] => 2019-04-20
            [tid] => 327
            [catid] => 220
            [info_id] => 230
            [questionid] => 1148
            [cid] => 220
            [answer] => fout
        )

    [68] => Array
        (
            [datum] => 2019
        )

    [69] => Array
        (
            [infoid] => 230
            [company_id] => 57
            [datum] => 2019-04-20
            [tid] => 327
            [catid] => 220
            [info_id] => 230
            [questionid] => 1145
            [cid] => 220
            [answer] => ok
        )

    [70] => Array
        (
            [datum] => 2019
        )

    [71] => Array
        (
            [infoid] => 230
            [company_id] => 57
            [datum] => 2019-04-20
            [tid] => 327
            [catid] => 220
            [info_id] => 230
            [questionid] => 1146
            [cid] => 220
            [answer] => ok
        )

    [72] => Array
        (
            [datum] => 2019
        )

    [73] => Array
        (
            [infoid] => 230
            [company_id] => 57
            [datum] => 2019-04-20
            [tid] => 327
            [catid] => 220
            [info_id] => 230
            [questionid] => 1144
            [cid] => 220
            [answer] => ok
        )

    [74] => Array
        (
            [datum] => 2019
        )

    [75] => Array
        (
            [infoid] => 230
            [company_id] => 57
            [datum] => 2019-04-20
            [tid] => 327
            [catid] => 220
            [info_id] => 230
            [questionid] => 1143
            [cid] => 220
            [answer] => ok
        )

    [76] => Array
        (
            [datum] => 2019
        )

    [77] => Array
        (
            [infoid] => 230
            [company_id] => 57
            [datum] => 2019-04-20
            [tid] => 327
            [catid] => 220
            [info_id] => 230
            [questionid] => 1142
            [cid] => 220
            [answer] => ok
        )

    [78] => Array
        (
            [datum] => 2019
        )

    [79] => Array
        (
            [infoid] => 230
            [company_id] => 57
            [datum] => 2019-04-20
            [tid] => 327
            [catid] => 220
            [info_id] => 230
            [questionid] => 1140
            [cid] => 220
            [answer] => ok
        )

    [80] => Array
        (
            [datum] => 2019
        )

    [81] => Array
        (
            [infoid] => 230
            [company_id] => 57
            [datum] => 2019-04-20
            [tid] => 327
            [catid] => 220
            [info_id] => 230
            [questionid] => 1141
            [cid] => 220
            [answer] => ok
        )

    [82] => Array
        (
            [datum] => 2019
        )

    [83] => Array
        (
            [infoid] => 230
            [company_id] => 57
            [datum] => 2019-04-20
            [tid] => 327
            [catid] => 220
            [info_id] => 230
            [questionid] => 1139
            [cid] => 220
            [answer] => ok
        )

    [84] => Array
        (
            [datum] => 2019
        )

    [85] => Array
        (
            [infoid] => 230
            [company_id] => 57
            [datum] => 2019-04-20
            [tid] => 327
            [catid] => 220
            [info_id] => 230
            [questionid] => 1138
            [cid] => 220
            [answer] => ok
        )

)

И мой код PHP:

<code><?PHP
while($getwpi = $getwpicon->fetch_assoc()){
  $year = date('Y', strtotime($getwpi['datum']));
  $wpi[]['datum'] = $year;
  $wpi[] = $getwpi;
}
echo '<pre>';
print_r($wpi);
echo '
'; ?>

Я также пробовал:

$wpi[]['datum'][] = $year;

Но это все равно добавляет новый массив.

1 Ответ

2 голосов
/ 06 мая 2019

Обратите внимание, что это: $wpi[]['datum'] = $year; означает добавление нового элемента в массив с базовым значением ключа, но вы хотите обновить только текущий ключ.Обновление должно быть на $getwpi, так как это элемент, который вы добавляете в массив результатов.

Вы должны сделать это:

while($getwpi = $getwpicon->fetch_assoc()){
  $year = date('Y', strtotime($getwpi['datum']));
  $getwpi['datum'] = $year; // update your field
  $wpi[] = $getwpi; // add to the result array
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...