Прошу меня простить за нечетко сформулированный вопрос в шапке, сейчас попытаюсь объяснить. Есть массив данных полученный в результате запроса к базе. В массиве есть поле даты в формате unix timestamp. Мне нужно заменить в этом массиве $result все элементы с ключом date датой "пропущенной" через функцию преобразования даты в нормальный вид. Весь этот геморрой нужен потому, что мне нужно отдать уже преобразованные в человеческий вид данные с помощью json в jquery скрипт. Например, начинаю как-то так: Код (PHP): foreach ($result as $item){ $converted[] = unix_to_human($item['created']); // получил массив дат в нужном формате } И тут тупняк, как в исходном массиве заменить даты новыми? По идее это array_replace, но не совсем понятно как правильно им воспользоваться, ведь первый массив имеет такую вложенную структуру: Код (Text): [0]=> //первая новость array(16) { ...... ["date"]=>1234234234 ...... } [2]=> //вторая новость array(16) { ...... ["date"]=>1234234234 ...... } а второй просто Код (Text): [0]=> string(15) "23 мая 2016 " [1]=> string(15) "23 мая 2016 " ....
Господи... А зачем? Вынимаешь значение из массива с той датой которая тебя не устраивает, дальше используешь функцию preg_replace меняешь всё то что тебе надо поменять, ну то как хочешь чтобы выглядело и выкидываешь туда куда тебе надо. ну или запиши обратно в базу. Ну или раз уж ты там хочешь реализовать своё то используй функцию array_replace... `https://php.ru/manual/function.array-replace.html`.. Не совпадают массивы? Перезапиши всё в другой массив по циклу. и всё. Наверняка реализация твоей задачи кроется не в одном способе, ну исходя из того что ты сказал, их целая масса, вопрос в том что ты хочешь сделать конкретно.
пробегайся по всему массиву, полученному из базы и изменяй в этом массиве, а не создавай новый с заменами. из базы то у тебя одномерный массив жеж
Да зачем если он это выводит куда - то, то пусть сразу применяет, свою функцию и выводит... А если надо хранить это новое значение, то пусть обратно в бд записывает. Всё зависит от того что ему надо.
он в json фигачит ответ для jquery. т.е. наверняка return / echo / die (json_encode) поэтому так и написал
Ну при выборке пусть сразу применяет и складывает в массив. И возвращает массив или кодирует его в json формат.
upd решил задачу так: PHP: foreach ($lazyFeed as $item){ $converted[] = array("created" => unix_to_human($item['created'])); } $res = array_replace_recursive($lazyFeed, $converted);