在php中计算每个子数组中的元素
php.net 提供以下 , array('orange', 'banana', 'apple'), 'veggie' => array('carrot', 'collard', 'pea')); // recursive count echo count($food, COUNT_RECURSIVE); // output 8 // normal count echo count($food); // output 2 ?> 我如何从$食品阵列(输出3)独立获取水果数量和数量蔬菜? ? 解决方案 您可以做到这一点: echo count($food['fruits']); echo count($food['veggie']); 如果您想要一个更通用的解决方案,则可以使用foreach循环: foreach ($food as $type => $list) {
0 2023-05-30
编程技术问答社区
PHP中一个字符串的字符在另一个字符串中出现的次数
假设我有两个字符串. $needle = 'AGUXYZ'; $haystack = 'Agriculture ID XYZ-A'; 我想计算$needle中$haystack中发生的字符的频率.在$haystack>中,有字符" a"(两次),'x','y'和z',所有这些都在针中,因此结果应该为5(案例敏感). 在PHP中有任何功能还是我必须自己编程? 预先感谢! 解决方案 您可以在没有这些字符的情况下计算原始字符串的长度和字符串的长度.它们之间的区别是匹配的数量. 基本上, $needle = 'AGUXYZ'; $haystack = 'Agriculture ID XYZ-A'; 这是完成工作的部分.一行. $count = strlen($haystack) - strlen(str_replace(str_split($needle), '', $haystack)); 解释:第一部分是自称的.第二部分是字符串的长度,
0 2023-05-30
编程技术问答社区
如何制作一个PHP计数器?
我知道我已经在JavaScript中完成了一次,但是我该如何在PHP中进行? 基本上我想这样做: if (empty($counter)){ $counter = 1; }else{ "plus one to $counter" ($counter++?) } ,但是当我尝试时它不起作用.我该怎么做? 谢谢:) 编辑:这是这样我可以做的: if ($counter == 10){ echo("Counter is 10!"); } 编辑: 这一切都在" while()"中,以便我可以计算它进行了多少次,因为限制对我目前正在做的查询不起作用. 解决方案 为什么会额外付出额外的时间? 我会这样做: $counter = 0; while(...) { (...) $counter++; } echo $counter; 其他解决方案 要增加给定值,请将增量运算符++附加到整数变量,然后将其直接放置在
0 2023-05-30
编程技术问答社区
如何计算每页使用的MySQL查询总数?
PHP或MySQL中是否有内置功能可以提供页面上使用的MySQL查询总数?我在许多网站(主要是论坛)上看到的,他们在底部有一条消息,说"页面在0.6秒内使用20个查询生成". 如果没有内置,那么我将在数据库类中添加一些东西来计算它们,但是似乎已经可以使用的功能. 解决方案 选项一种是通过包装器传递所有查询: function custom_mysql_query($sql) { $GLOBAL['query_count'] ++; return mysql_query($sql); } 请注意,这仅用于插图,而没有错误处理等. 您可以查询MySQL是否正在运行的查询数: mysql> SHOW STATUS LIKE 'Com_select'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Com_select | 2
2 2023-05-30
编程技术问答社区
如何在一个回调函数中包含一个变量?
我正在尝试获得大于n的数组值的计数. 我正在使用array_reduce()喜欢: $arr = range(1,10); echo array_reduce($arr, function ($a, $b) { return ($b > 5) ? ++$a : $a; }); 这打印了数组中元素的数量,大于硬编码5良好. 但是如何制作5一个变量,例如$n? 我已经尝试引入这样的第三个论点: array_reduce($arr, function ($a, $b, $n) { return ($b > $n) ? ++$a : $a; }); // ^ ^ 甚至 array_reduce($arr, function ($a, $b, $n) { return ($b > $n) ? ++$a : $a; }, $n); //
0 2023-05-30
编程技术问答社区
在高流量数据库上使用过滤器计算Mysql的行数
假设您有一个带有多个选择字段的搜索表格,假设用户从下拉列表中选择一个选项,但是在他提交数据之前,我需要在数据库中显示行计数. 因此,假设该网站每天至少有30万(300.000)访问者,并且用户从访问访问的表单中选择选项,这意味着数据库上的12m Ajax请求 + 12m计数查询,这似乎是有点太多. 问题是,一个人如何实现快速计数(使用PHP(Zend Framework)和MySQL),以便数据库上的其他12m查询不会影响站点的负载. 一个解决方案是拥有一个存储选定字段及其各自计数组合的表(当从产品表中添加或删除产品时,将存储计数将被更新).虽然这不是一个好主意,当43中的8个过滤器(选择选项)时,需要插入 +800万行. 关于如何实现这一目标的其他想法? P.S.我不需要代码示例,而是在这种情况下可以使用的想法本身. 解决方案 我建议一个单独的表,该表缓存计数,并结合触发器. 为了使其快速制作一个内存表,并使用插入,删除和更新上的触发器进行更
0 2023-05-30
编程技术问答社区
当我尝试计算mysqli结果时,为什么要警告?
下面的代码引起此警告: 警告:count():参数必须是实现可计数的数组或对象 为什么这样做?我该如何防止警告? if (isset($_GET['edit'])) { $sonum = $_GET['edit']; $update = true; $result = $mysqli->query("SELECT * FROM salesorder WHERE sonum=$sonum") or die ($mysqli->error); if (count($result)==1) { $row = $result->fetch_array(); $salesperson = $row['salesperson']; $company = $row['company']; $status = $row['status']; } } 解决方案 $result将
0 2023-05-29
编程技术问答社区
如何统计每个病人预约了多少个医生?
我需要结果看起来像: PatientID Doctors Patient1 3 Patient2 2 Patient3 1 预订的桌子看起来像这样 GPS Table PatientID DoctorID DATE Patient1 Doctor1 2016-02-16 Patient1 Doctor1 2016-04-08 Patient1 Doctor2 2016-06-09 Patient2 Doctor3 2017-01-02 Patient2 Doctor6 2016-12-01 Patient3 Doctor1 2016-07-12 还有更多的预订,但我只是以这张桌子为例. 另外,我需要确保如果为医生预订了2次,它不会计算同一位医生. 我现在拥有的代码是: select Bookings.PatientID, count(Bookings.DoctorID
0 2023-05-29
编程技术问答社区
我需要在一个csv列中获得一个数值的计数(分组)。
我需要计算第一列的值.这些ID可能在我收到的任何给定的.CSV文件中可能不存在.因此,我需要循环浏览第一个列的.CSV文件,如果我已经添加了它,则将其添加到保存数组($ PWSS)($ PWSS)($ PWSS)($ PWSS)($ PWSS),或者在此保存数组中添加计数. 我使用FGETCSV()有第一个循环.这用于划分到文件中: $PWSs = array(); $handle2 = fopen ($uploadfileandpath,"r"); while ($field2array = fgetcsv ($handle2, 130000, ",")) { // Here is where I would add value or increment $PWSs array while (?) { if ($field2array[0] != ?) { // Add or increment
0 2023-05-29
编程技术问答社区
PHP-计算两个日期之间的天数
我正在尝试编写一个可以计算2个日期之间天数的函数.我目前有以下内容,但它给我带来了一些意外的结果: function dayCount($from, $to) { $first_date = strtotime($from); $second_date = strtotime($to); $offset = $second_date-$first_date; return floor($offset/60/60/24); } print dayCount($s, $e).' Days'; 有几个正确的示例: $s = '18-03-2016'; $e = '25-03-2016'; 输出:7 Days - 正确 $s = '03-02-2016'; $e = '06-02-2016'; 输出:3 Days - 正确 $s = '06-04-2016'; $e = '27-04-2016'; 输出:21 Days
0 2023-05-29
编程技术问答社区
在哪里可以读到游客信息
更新: 这个问题暴露了visitors count的过时,最糟糕的方法,那里的每个人都应该避免这种方法.使用复杂的计数器. 解决方案 由于我没有找到令人满意的"简单"解决方案,所以我想出了自己的解决方案.创建一个称为ip.txt的空文件,并在代码中的某个地方使用此文件: $ip_all = file("ip.txt"); $ip_cur = $_SERVER['REMOTE_ADDR']."\n"; if (!in_array($ip_cur, $ip_all)) { $ip_all[] = $ip_cur; file_put_contents("ip.txt", implode($ip_all)); } echo "visitors: " . count($ip_all); 请注意,由于条目未过期并像cookie一样被删除,因此随着时间的流逝,此文件会随着时间的流逝而变得有些大.但是如前所述,我希望它尽可能简单,并且不在乎.另外,我不想依靠co
0 2023-05-29
编程技术问答社区
PHP计算数组元素
嗨,有人可以解释为什么这会返回"一个数组由0个元素组成". : $arr = array(1,3,5); $count = count($arr); if ($count = 0) { echo "An array is empty."; } else { echo "An array has $count elements."; } 顺便说一句,这是我正在进行的测验,我不确定为什么这是正确的答案? 解决方案 您在条件语句中分配$count为0 而不是... if ($count = 0) 做这个 if ($count === 0) 其他解决方案 每当您要检查一种逻辑手段时,请检查两次是否使用正确的操作员. 他们中的大多数都犯了同样的错误,例如 if ($count = 0) // here you are assigning the value to $count variable 分配值而不是比较值. if
0 2023-05-29
编程技术问答社区
使用模数php检测每个4
我正在尝试检测每个第四篇文章,以使用模量方法在WordPress中插入额外的代码,但我只是无法获得. 这是我的简短例子: 所有内部循环中的所有内容.我究竟做错了什么?谢谢. 解决方案 您需要从1
0 2023-05-29
编程技术问答社区
为什么count(DOMNode | >childNodes)会返回错误的子节点数量? (PHP和XML)
i具有称为ProcessDeleteForm()的PHP函数,旨在从名为Construct.xml的XML文档中删除指定的节点.到目前为止,我遇到的唯一问题是,在processDeleteform()中,它通过循环浏览父节点的每个子节点来删除节点,并通过"名称"属性匹配它,但是我尚未匹配``''能够获得正确数量的循环子节点,因此它在达到正确节点之前就停止.相关代码: function processDeleteForm($dir, $filename) { echo "Processing delete request. "; echo "Request to delete ".$filename." from ".$dir.". "; $xmlDoc = new DOMDocument(); $xmlDoc->load("structure.xml"); $node = dirDOMNodeWritable($dir, $xmlDoc);
0 2023-05-28
编程技术问答社区
FOUND_ROWS()一直返回0
$result = $db_con->query("SELECT SQL_CALC_FOUND_ROWS * FROM users LIMIT 0,10"); $count_result = $db_con->query("SELECT FOUND_ROWS() as totalcount"); $row = $count_result->fetch_assoc(); $total = $row['totalcount']; $ $总计仍返回0,即使$结果包含其中的所有用户行. ini_set("mysql.trace_mode", "0"); 我通过在此处搜索类似的Q搜索了有关此设置的信息,但它无法解决我的问题. 当我在MySQL客户端中使用2个选择语句时,它总是会输出正确的计数.只是似乎无法弄清楚如何在我的PHP页面上工作. PHP版本:5.2.5构建6 MySQL版本:5.1.30 注意:我提供的代码没有在我的实际项目上使用,但是,它确实体现了我无
0 2023-05-28
编程技术问答社区
为什么count(DOMNode->childNodes)会返回错误的子节点数量?(PHP和XML)
i具有称为ProcessDeleteForm()的PHP函数,旨在从名为Construct.xml的XML文档中删除指定的节点.到目前为止,我遇到的唯一问题是,在processDeleteform()中,它通过循环浏览父节点的每个子节点来删除节点,并通过"名称"属性匹配它,但是我尚未匹配``''能够获得正确数量的循环子节点,因此它在达到正确节点之前就停止.相关代码: function processDeleteForm($dir, $filename) { echo "Processing delete request. "; echo "Request to delete ".$filename." from ".$dir.". "; $xmlDoc = new DOMDocument(); $xmlDoc->load("structure.xml"); $node = dirDOMNodeWritable($dir, $xmlDoc);
0 2023-05-28
编程技术问答社区
如何使用ODBC连接在PHP中获取结果集的行数或数量?
当我在PHP Web应用程序中构建网页时,我的连接正常运行,但是当我想获得我在查询中使用的选择语句的行计数时,它给了我-1!尽管我的结果集约有10行. 我想获取结果设置行的实际数量. 我搜索了PHP手册和文档,但我找不到像计数功能或类似功能的直接方式. 我想知道我是否必须在另一个查询中进行计数(*)sql语句并将其附加到我的连接以获取行计数? 有人知道一种简单而直接的方法吗? ODBC_NUM_ROWS函数总是在结果中给出-1,因此我无法获得实际的行数. 我的编程langauge是PHP,我的数据库引擎是Sybase,连接到数据库的方法是ODBC. 这是我使用的代码: -
0 2023-05-28
编程技术问答社区
PHP计算目录和子目录下的文件总数的功能
我需要在指定的目录中获得JPG文件的总数,包括所有的子目录.没有子标题目录. 结构看起来像这样: dir1/ 2 files subdir 1/ 8 files 总计 dir1 = 10文件 dir2/ 5 files subdir 1/ 2 files subdir 2/ 8 files 总计 dir2 = 15文件 我具有此功能,它不正常,因为它仅计算上一个子目录中的文件,总数比实际文件的数量高2倍. (如果我在上一个subdir中有40个文件,将输出80) public function count_files($path) { global $file_count; $file_count = 0; $dir = opendir($path); if (!$dir) return -1; while ($file = readdir($dir)
0 2023-05-28
编程技术问答社区
php计算爆炸后的字符串的数量
这是我的代码 $key) { $i >0; echo $i.' '.$key .''; } ?> 输出为 0 a 1 b 2 c 3 d 4 e 5 f 我试图计算我爆炸后的字符串数| (我的示例应该是6 请问吗? 谢谢. 解决方案 $key) { echo $i.' '.$key .''; } ?> 尝试使用: echo count($tags); // Output of 6 数组以0的键开头,而不是一个.因此,当使用其他任何内容以外的其他
0 2023-05-28
编程技术问答社区