помогите с массивами php

125
09 декабря 2018, 10:10

у меня есть array

Array ( 
  [0] => Array ( [0] => 2018,07,02 [1] => 0.56 ) 
  [1] => Array ( [0] => 2018,07,04 [1] => 0.56 ) 
  [2] => Array ( [0] => 2018,07,04 [1] => 2.29 ) 
  [3] => Array ( [0] => 2018,08,22 [1] => 276.03 ) 
  [4] => Array ( [0] => 2018,08,23 [1] => 276.03 ) 
  [5] => Array ( [0] => 2018,08,23 [1] => 326.86 ) 
  [6] => Array ( [0] => 2018,08,27 [1] => 328.33 )
)

как поменять массив так чтоб получить тот же массив, но месяц был на 1 меньше? Пример:

Array ( 
 [0] => Array ( [0] => 2018,06,02 [1] => 0.56 ) 
 [1] => Array ( [0] => 2018,06,04 [1] => 0.56 ) 
 [2] => Array ( [0] => 2018,06,04 [1] => 2.29 ) 
 [3] => Array ( [0] => 2018,07,22 [1] => 276.03 ) 
 [4] => Array ( [0] => 2018,07,23 [1] => 276.03 ) 
 [5] => Array ( [0] => 2018,07,23 [1] => 326.86 ) 
 [6] => Array ( [0] => 2018,07,27 [1] => 328.33 )

)

Answer 1

Как вариант, полный перебор массива циклом.

foreach($arr as &$item){
    $explodedDate = explode(',', $item[0]);
    $explodedDate[1] = (int)$explodedDate[1] - 1;
    if(mb_strlen($explodedDate[1]) == 1){
        $explodedDate[1] = '0'.$explodedDate[1];
    }
    $item[0] = implode(',', $explodedDate);

Попробуйте вот так.

Answer 2

Можно распарсить дату через strtotime

foreach ($array as &$item) {
   $item[0] = date("Y,m,d", strtotime("-1 month", strtotime(str_replace(",", "-", $item[0]))))
}
READ ALSO
Undefined variable: hit

Undefined variable: hit

Помогите пожалуйста найти ошибку, сделал магазин на yii2, перенес на хостинг и переходы по категориям и карточке товара перестали работатьКак...

117
Обновить пользователя

Обновить пользователя

Ребят делаю на PDOЗначит есть пользователь

119
301 редирект c /category.php на /category/

301 редирект c /category.php на /category/

Прбую прописать редирект

168