Reputation:
When I use my glob It lets me list files. I would like to be able to count the files but not the ones in my not count array();
When I echo the count it counts 3 but should only echo count 2 there is no other file.
How do I make sure counts correct?
<?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 Dump All Files Out Put
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" }
Upvotes: 1
Views: 138
Reputation: 59681
Just use array_diff()
to only count the difference like this:
echo count(array_diff($files, $ignore));
EDIT:
Your question is unclear, but I think you may want something like this:
echo count(array_filter(array_map(function($v)use($ignore){
return in_array(pathinfo(basename($v))["filename"], $ignore);
}, $files)));
Upvotes: 1