在PHP中,我愿意在某些操作后比较浮点数,但是它显示得不正确. 例如: $a = 0.2; if ( ($a - 0.2) === 0 ) return true; else return false; 它返回false.甚至我尝试了Epsilon常数,但有时是不正确的. 有人知道如何解决这个问题吗? 解决方案 使用此方法: $a = 0.2; if ( abs($a - 0.2)
以下是关于 compare 的编程技术问答
我想做Stackoverflow所做的事情,这是自上一篇文章以来的确切时间.但是有一个收获,因此请根据上一篇文章的持续时间显示某些信息 - 例如,如果帖子不到一天,他们发布了最后几个小时前的帖子;如果帖子不到一个小时前,他们发布了几分钟前,等等. . 我正在使用以下格式使用MySQL DateTime字段: 2012-09-19 13:28:45 我想将上述内容与时间NOW进行比较,因此我使用PHP的strtotime函数进行了转换,并尝试通过我放在一起的函数(以下)进行比较两个日期.当然,这可能是这样做的最糟糕的方法,但是在阅读了有关PHP的Date和DateTime功能之后,我开始变得非常非常困惑. function get_date_format($strToTimeString){ $minute = 60; $hour = $minutes * 60; $day = $hour * 24;
$first = 1,2,3,4,5; $second = 1,3,5,6; 我需要与这两个区分开,所以结果就像: $result = 2,4,6; 解决方案 假设您的意思是 $first = "1,2,3,4,5"; $second = "1,3,5,6"; 然后尝试 $first_array = explode(",", $first); $second_array = explode(",", $second); $result_array = array_merge(array_diff($first_array, $second_array), array_diff($second_array, $first_array)); $result = implode("," $result_array); 其他解决方案 尝试以下方法: implode(',',array_diff(explode(',',$first),explode(',
我在数据库中有关注 $checktime = mysql_query("SELECT * FROM drafts WHERE page='sched'"); while($row = mysql_fetch_array($check)){ if($row['posted'] = date('j-n-Y')) { echo "ok"; } } 我想将这个日期与今天的日期进行比较.如果每个人都知道,请帮助我.谢谢! 解决方案 条件是错误的,它应该有两个平等的符号== if($row['posted'] == date('j-n-Y')) 请注意,一个等于签名的是用于分配,这意味着 $row['posted'] = date('j-n-Y') 以上代码将date('j-n-Y')的值分配到$row['posted'] 中 ,您的作业只会返回true,因此每次进入if条件块 用作两个等于符号==的情况,用于压
简介 - 此问题已于2018年5月27日更新: i有1 php 多维阵列,包含6个子阵列,每个阵列包含20个子阵列,而每个阵列又包含2个子阵列(标题),另一个是未指定的关键字(关键字). 我希望将120个子阵列中的每一个与剩余5个子阵列中包含的其他100个子阵列进行比较.因此,将 sub-sub-array 1 sub-array 1 与 sub-array进行了比较 1 to和包括 sub-array 20 sub-array 2 to and在内 sub-array 6 等等. 如果两个子阵列中的足够 关键字 被认为是相同的,并且 em 也是两者都使用Levenshtein距离,将合并子式阵列. 示例脚本 我已经写了一个脚本,但是对于两个单独的数组来演示我的目标:
一个简单的问题是preg_match在PHP中,MySQL查询中的like是相同的? 主要问题: 考虑以下是我的两个表table1和table2 表1 表2 +-------+-------------------------+ +-------+------------------------------+ | ID | Model | | ID | Model | +-------+-------------------------+ +-------+------------------------------+ | 1 | iPad 2 WiFi 16GB | | 1 | iPad2 WiFi 16GB | | 2 | iPhone 4S 16GB
将这两个阵列放入PHP: $array1 = [ 2 => 'Search', 1 => 'Front-End / GUI' ]; $array2 = [ 1 => 'Front-End / GUI', 2 => 'Search' ]; 大多数数组比较功能都不关心顺序.做array_diff将导致一个空数组. 比较两个阵列的最有效/最短/最清洁的方法是: 显示它们是否平等(true/fals)? 显示差异(例如phpunit)? 在phpunit中运行$this->assertEquals( $array1, $array2 );理想情况下应该产生类似的东西: Failed asserting that two arrays are equal. --- Expected +++ Actual @@ @@ Array ( - 2 => 'Search' - 1 => 'Front-End / GUI' +
是否有短暂的方法? if ((isset($a['key']) && ($a['key'] == 'value')) { echo 'equal'; // more code } else { echo 'not equal'; // more code } 我需要在可以或不能存在的数组上测试大量值.我觉得这种方法太冗长了. 我可以删除isset()并静音通知...但是我感到肮脏. 编辑: 回答杰克的问题:"您能举个例子,如何在数组中测试很多值?" 示例: if (isset($_GET['action']) && $_GET['action'] == 'view') { //code } if (isset($_GET['filter']) && $_GET['filter'] == 'name') { //code } if (isset($_GET['sort']) && $_GET['sort'] == 'up')
我有一个接受用户提交的系统,并且收到提交后,该系统将通过所有时段来查找适当的时间段.问题在于,如果结束时间到第二天的结束时间,它需要能够对抗开始和结束时间. 举以下示例: 一个时段从当天的晚上10:30开始,第二天下午4:00结束.如果当前时间是在10:30 pm到11:59:59 pm之间,则提交将分配给该时间段.但是,如果当前时间是在12:00 am到4:00 pm之间,则它将跳过时隙. 这是我到目前为止所拥有的: function check_time($from, $to, $time) { $time = strtotime($time); $from = strtotime($from); $to_ = strtotime($to); $to = $to_ = $from && $time
是否有一种快速的方法来做这样的事情比较两个数组具有相同的值,但在php中使用不同的顺序? 我的数组可能具有相同的数据,但按不同的顺序,我只需要查看它们是否相同. 好吧,事实证明我又回到了一个对象,而不是一个数组,我想... object(Doctrine\ORM\PersistentCollection)#560 (9) etc. hmm ...最简单的方法可能是迭代集合的内容以创建我自己的数组,然后像你们所有人的建议一样比较? 只是为我的最终解决方案添加代码 //Find out if container receives mediasync $toSync = array(); foreach($c->getVideosToSync() as $v) { $toSync[] = $v->getId(); } $inSync = array();
此方法是否比较图像的像素值?我猜这是不起作用的,因为它们彼此不同,但是如果它们相同,但是以不同的格式呢?例如,我拍摄了一个屏幕截图,并保存为.jpg,另一个保存为.gif. . 解决方案 md5哈希是实际二进制数据的,因此不同的格式将具有完全不同的二进制数据. 因此,要使MD5哈希匹配,它们必须是相同的文件. ( fringe cases.) 这实际上是法医执法的一种方法,将其视为违禁品. (参考图像) 其他解决方案 这是一个MD5校验和,如果下载文件的MD5与提供商给出的MD5相匹配,则通常会看到同样的内容,则文件传输成功. http://en.wikipedia.org/wiki/checksum 由此产生的哈希将完全不同. 由于JPG和GIF之间编码的差异,这2不会具有相同的MD5哈希. 其他解决方案 md5是哈希算法,因此它不能比较图像,而是比较 data .您输入的数据几乎可以是任何内容,例如A file 的内容.然后,它基于 conte
我要实现的目标是,它会循环陷入阵列.然后,它将在三个点上查看数组中的项目是否相同:product_id,尺寸值和颜色值. 我想创建一个列出项目的新数组,我唯一不想要的是重复的值.我希望重复的值在这三个点上相同,以使数量将被计算在一起.就像我有3个相同的产品ID相同尺寸和相同颜色的相同的产品,并且在我的新数组中订购了3个项目中的这两个都只是1次,数量将是9个.阵列. 当前循环 foreach($orders as $key => $order){ foreach($order['orderProducts'] as $key => $value){ echo '
';
print_r($value['attributes']);
echo '
'; } } 导致以下数组 Array ( [id] =
我刚刚在Zend Framework的HTTP Auth库中遇到了此代码.它似乎正在使用特殊的字符串比较函数来使其更安全.但是,我不太了解这些评论.有人可以解释为什么此功能比执行$a == $b? 更安全 /** * Securely compare two strings for equality while avoided C level memcmp() * optimisations capable of leaking timing information useful to an attacker * attempting to iteratively guess the unknown string (e.g. password) being * compared against. * * @param string $a * @param string $b * @return bool */ protected function _secureSt
我想比较两个日期,以获得一段时间(几天,小时,分钟和秒)的差异 {% set todayDate = ( "now"| date("Y-m-d H:i:s") ) %} //2013-04-17 08:45:28 {% set endDate = (enddate|date('Y-m-d H:i:s')) %} //2013-04-18 23:59:59 如何获得小时差? 解决方案 最后我明白了. 比较两个日期以获取时间(几天,小时和分钟) 在控制器中: (学说查询) TIMESTAMPDIFF(DAY,CURRENT_TIMESTAMP(), a.enddate) AS endday, (TIMESTAMPDIFF(HOUR,CURRENT_TIMESTAMP(), a.enddate) - TIMESTAMPDIFF(DAY,CURRENT_TIMESTAMP(),a.enddate)*24) AS endhour, (TIMESTA
可能的重复: php日期比较 我有一个看起来像这样的MySQL数据库的日期: 2011-06-20 我以这种方式获得了当前日的日期: $todaydate = date('Y-m-d'); 我需要知道的是如何比较两个结果? 我如何比较日期并理解,例如,是否从数据库日期或一个月或一年中传递了一周. 谢谢! 解决方案 当MySQL已经具有内置功能时,无需将这种负担放在PHP上.您应该看一下MySQL的 功能: DATEDIFF()返回expr1 - expr2在一个日期到另一个日期的几天中表示为值. expr1和expr2是日期或时间和时间表达式.仅在计算中使用该值的日期部分. 两个日期的示例可能是: mysql> select datediff('2011-06-18','2011-06-25'); +-------------------------------------+ | datediff('2011-06-18','
我被困在比较PHP中的两个Unicode字符串上,两者都包含特殊的char"Ö".一个字符串来自$_GET,另一个字符串来自文件系统的文件夹名称(scandir()).这两个字符串似乎都等于我,使A var_dump($filter); var_dump($tail . '/' . $k); 在他们上也显示了他们的平等,但不同字符串lenghts(?!): string '/blöb' (length=7) string '/blöb' (length=6) 我的片段比较它们如下: if($filter == ($tail . '/' . $k)) { /* ... */ } 这里发生了什么? 其他信息: $tail是一个空字符串: string '' (length=0) 解决方案 请参阅此处: >使用此信息: http://www.php.net/manual/manual/manual/en//en/class.normali