scratch – Blame information for rev 87

Subversion Repositories:
Rev:
Rev Author Line No. Line
87 office 1 <?php
2  
3 require_once __DIR__ . '/../vendor/autoload.php'; // Autoload files using Composer autoload
4  
5 use Fusonic\Linq\Linq;
6 $files = glob("/tmp/*");
7  
8 // Sort all files in a directory by filsize in descending order
9  
10 ### Plain PHP: ###
11 $data = array();
12 foreach($files as $file) {
13 $currentSize = filesize($file);
14 $data[] = array("name" => $file, "size" => $currentSize);
15 }
16  
17 uasort($data, function($a, $b) {
18 $as = $a['size'];
19 $bs = $b['size'];
20 if($as == $bs) { return 0; }
21 else return $as < $bs ? 1 : -1;
22 });
23  
24 foreach($data as $x)
25 {
26 echo $x['name'] . " " . $x['size'] . "<br>";
27 }
28  
29 ### Linq: ###
30  
31 echo "<br/><br> Linq: <br /><br>";
32  
33 $linq = Linq::from($files)
34 ->select(function($x) { return array("name" => $x, "size" => filesize($x)); })
35 ->orderByDescending(function($x) { return $x['size']; })
36 ->each(function($x) {
37 echo $x['name'] . " " . $x['size'] . "<br>";
38 });