[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: поэлементное вычитание двух массивов
flinth
суть такова
$one = array(2,5,6);
$two = array(1,2,3);
$result = $one - $two;
print_r($result);

и при всем этом хотелось бы получить ([0]->1; [1]->3; [2]->3);

Как это можно сделать и вообще стоит ли заморачиваться с этим, если можно как нибудь проще сделать возможность отображать добавление в базу по времени (пример: добавлено 15 минут назад) в своем случае под первым и вторым массивом хотел брать время из базы и текущее.



Спустя 13 минут, 5 секунд (12.03.2012 - 21:41) Игорь_Vasinsky написал(а):
массивы равны по кол-ву элементов? самое простое


$arr1 = array(2,5,6);
$arr2 = array(1,2,3);

for($i=0; $i<count($arr1); $i++)
$arr3[] = $arr1[$i]-$arr2[$i];


echo '<pre>' . print_r($arr3, 1) . '</pre>';

Спустя 5 минут (12.03.2012 - 21:46) flinth написал(а):
да равны, так тоже можно),
но возник вопрос, я дело со временем имею а у меня возникают отрицательные значения при разности. Как это к времени привязать? ну то есть например минут выйдет отрицательное число => занимать надо у часа но как тут сделать то?

Спустя 4 минуты, 34 секунды (12.03.2012 - 21:51) Игорь_Vasinsky написал(а):
ну я бы делал так

1. перегнал в unix формат
2. нашёл разницу в секундах
3. http://php.net/manual/ru/function.strtotime.php

Спустя 14 минут, 55 секунд (12.03.2012 - 22:05) flinth написал(а):
ну я примерно так и делал но в конце загвоздка, из базы я достаю UNIX_TIMESTAMP


$post_time = base['UNIX_TIMESTAMP(`date`)'];
$now = mktime();

$result = $now - $post_time;
echo date("d-m-Y H-i-s" ,$result);

так вот выходит здесь 01-01-1970 04-04-56
но сами понимаете первые три числа не совпадают с действительностью

Спустя 5 минут, 44 секунды (12.03.2012 - 22:11) Игорь_Vasinsky написал(а):
ну в эту сторону не смотрел? http://php.net/manual/ru/function.strtotime.php

Спустя 8 минут, 31 секунда (12.03.2012 - 22:20) flinth написал(а):
честно говоря не понял зачем это, не правильно сделал, не работает чтото

$post_time = base['UNIX_TIMESTAMP(`date`)'];
$now = mktime();

$result = $now - $post_time;
echo strtotime(date("d-m-Y H-i-s" ,$result));

Спустя 3 минуты, 57 секунд (12.03.2012 - 22:24) Игорь_Vasinsky написал(а):
да хз

Цитата
Замечание:

Даты в формате m/d/y или d-m-y разрешают неоднозначность с помощью анализа разделителей их элементов: если разделителем является слэш (/), то дата интерпретируется в американском формате m/d/y, если же разделителем является дефис (-) или точка (.), то подразумевается использование европейского форматаd-m-y.

Чтобы избежать потенциальной неоднозначности, рекомендуется использовать даты в формате стандарта ISO 8601 (YYYY-MM-DD) либо пользоваться функцией DateTime::createFromFormat() там, где это возможно.

Замечание:

Не рекомендуется использовать эту функцию для математических операций. Целесообразней использовать DateTime::add() и DateTime::sub() начиная с PHP 5.3, или DateTime::modify() в PHP 5.2.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.