Доброго времени суток. Есть массив такой структуры: $array[id][this_task] $array[id][email][next_task] При сложении, с помощью стандартных функций php, таких массивов $first = $array[1][q@ukr.net][this_task] $second = $array[1][q@ukr.net][next_task] Получаем результирующий: $result = $array[1][q@ukr.net][next_task] А задача была получить: $result = $array[1][q@ukr.net][this_task+next_task] Решили данную задачу с помощью "ручного сложения". Но такой подход не сильно удовлетворяет. Можно ли ее решить использую стандартные средства и функции. Спасибо
нет, конечно. впрочем, я тут искуственный интеллект недано выкладывал - можешь допилить его, чтобы угадывал, как нужно "складывать" массивы...
Спасибо за ответ. Если не секрет, на хрена тебе тогда php для целей искусственного интелекта? Буду "допиливать" твоего робота Вертера.
Извините, может сильно нервный. Задача такая: сложить два многомерных массива, по способу, изложенному выше. Как и почему пришел к складыванию таких массивов, говорить не хочу (работаю не один). Хочется сделать с помощью стандартных функций php, а не методом ручного складывания по индексам. Спасибо всем.
Я так понял R22 нужно слить массивы так, чтобы получить в результирующем массиве в третьем "измерении" сумму значений третьего измерения исходного массива.
Да все правильно, и мы столкнулись с тем, что с помощью стандартных функций этого сделать невозможно. Пришлось выходить из ситуации кодом типа этого: while (list($key, $val) = each($three_days)) { $data_array[$key] = $val[email]; $data_array[$key][three_days] = $val[three_days]; и т.д. } Такое решение не устраивает, ведь сложение массивов сильно изменилось за эволюцию php. С помощью стандартных функций хотелось решить эту проблему, т.к. по моей логике применение стандартных функций продлит время существования программы.
armadillo, наверное имеется в виду, что увидев стандартную функцию посторонний кодер либо будет ее знать, либо залезет в ман и посмотрит. А увидев нечто загадочное почешет затылок и перепишет по новой...
R22 На самом деле, как раз вручную написаные функции живут дольше, т.к. работа встроенных функций может меняться от версии к версии (таких изменений в работе встроеных функций 4 и 5 версии великое множество). Используемые вами while и each как раз едва ли когда изменятся К тому же такой встроенной функции нет (или я тоже не нашёл).
Логика такая: в php5 появилась функция, которая из строки делает массив, раньше (да и сейчас) массив из строки делался простым приравниванием. Для чего ее ввели разработчики не буду дурить голову ни себе ни вам. Но применять на данный момент лучше эту стандартную функцию. Второе, возьмите версии mysql и бардак который может возникнуть в коде, если хостер поменяет версию сервера и при этом Вы любите использовать гибкость mysql. Третье: код работает быстрее и читается лучше, как заметил dAllonE. Вот и вся логика. Скорее всего, я сильно придираюсь, и наверное тему следует закрыть, наслаждаясь "нестандартным решением".