当我使用我的glob它让我列出文件。我希望能够计算文件,但不能计算not count array();
当我回显计数时,它计数3但应该只回显计数2,没有其他文件。
如何确保计数正确?
<?php
class Count extends MX_Controller {
public function index() {
$name = glob(FCPATH . 'application/modules/admin/controllers/*/*.php');
$not_count = array(
FCPATH . 'application/modules/admin/controllers/common/dashboard.php',
FCPATH . 'application/modules/admin/controllers/common/footer.php',
FCPATH . 'application/modules/admin/controllers/common/header.php',
FCPATH . 'application/modules/admin/controllers/common/login.php',
FCPATH . 'application/modules/admin/controllers/common/logout.php',
FCPATH . 'application/modules/admin/controllers/common/menu.php',
FCPATH . 'application/modules/admin/controllers/common/register.php',
FCPATH . 'application/modules/admin/controllers/dashboard/customer_total.php',
FCPATH . 'application/modules/admin/controllers/dashboard/online.php',
FCPATH . 'application/modules/admin/controllers/dashboard/user_total.php',
FCPATH . 'application/modules/admin/controllers/error/permission.php'
);
var_dump($not_count);
echo "<br/>";
echo "<br/>";
var_dump($name);
// Not Counting Correct When Echo Out Puts 3 Should be 2
$filecount1 = count(array_diff($not_count, $name));
echo "<br/>";
echo "<br/>";
echo $filecount1;
}
}
Var Dump Not Count Array
array(11) { [0]=> string(14) "customer_total" [1]=> string(9) "dashboard" [2]=> string(6) "footer" [3]=> string(6) "header" [4]=> string(5) "login" [5]=> string(6) "logout" [6]=> string(4) "menu" [7]=> string(6) "online" [8]=> string(10) "permission" [9]=> string(8) "register" [10]=> string(10) "user_total" }
Var转储所有文件输出
array(13) { [0]=> string(95) "C:\Xampp\htdocs\project1\application/modules/admin/controllers/common/dashboard.php" [1]=> string(92) "C:\Xampp\htdocs\project1\application/modules/admin/controllers/common/footer.php" [2]=> string(92) "C:\Xampp\htdocs\project1\application/modules/admin/controllers/common/header.php" [3]=> string(91) "C:\Xampp\htdocs\project1\application/modules/admin/controllers/common/login.php" [4]=> string(92) "C:\Xampp\htdocs\project1\application/modules/admin/controllers/common/logout.php" [5]=> string(90) "C:\Xampp\htdocs\project1\application/modules/admin/controllers/common/menu.php" [6]=> string(94) "C:\Xampp\htdocs\project1\application/modules/admin/controllers/common/register.php" [7]=> string(103) "C:\Xampp\htdocs\project1\application/modules/admin/controllers/dashboard/Customer_total.php" [8]=> string(95) "C:\Xampp\htdocs\project1\application/modules/admin/controllers/dashboard/Online.php" [9]=> string(99) "C:\Xampp\htdocs\project1\application/modules/admin/controllers/dashboard/User_total.php" [10]=> string(95) "C:\Xampp\htdocs\project1\application/modules/admin/controllers/error/permission.php" [11]=> string(110) "C:\Xampp\htdocs\project1\application/modules/admin/controllers/extension/extension_permissions.php" [12]=> string(88) "C:\Xampp\htdocs\project1\application/modules/admin/controllers/user/user.php" }
答案 0 :(得分:1)
只需使用array_diff()
来计算这样的差异:
echo count(array_diff($files, $ignore));
修改强>
你的问题不清楚,但我想你可能想要这样的事情:
echo count(array_filter(array_map(function($v)use($ignore){
return in_array(pathinfo(basename($v))["filename"], $ignore);
}, $files)));