scratch – Blame information for rev 87
?pathlinks?
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 | }); |