源码分享站 - 分享有用的

fatfree 展示 matrix.php源代码

返回 下载fatfree: 单独下载matrix.php源代码 - 下载整个fatfree源代码 - 类型:.php文件
  1. <?php
  2.  
  3. /*
  4.  
  5.         Copyright (c) 2009-2016 F3::Factory/Bong Cosca, All rights reserved.
  6.  
  7.         This file is part of the Fat-Free Framework (http://fatfreeframework.com).
  8.  
  9.         This is free software: you can redistribute it and/or modify it under the
  10.         terms of the GNU General Public License as published by the Free Software
  11.         Foundation, either version 3 of the License, or later.
  12.  
  13.         Fat-Free Framework is distributed in the hope that it will be useful,
  14.         but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16.         General Public License for more details.
  17.  
  18.         You should have received a copy of the GNU General Public License along
  19.         with Fat-Free Framework.  If not, see <http://www.gnu.org/licenses/>.
  20.  
  21. */
  22.  
  23. //! Generic array utilities
  24. class Matrix extends Prefab {
  25.  
  26.         /**
  27.         *       Retrieve values from a specified column of a multi-dimensional
  28.         *       array variable
  29.         *       @return array
  30.         *       @param $var array
  31.         *       @param $col mixed
  32.         **/
  33.         function pick(array $var,$col) {
  34.                 return array_map(
  35.                         function($row) use($col) {
  36.                                 return $row[$col];
  37.                         },
  38.                         $var
  39.                 );
  40.         }
  41.  
  42.         /**
  43.         *       Rotate a two-dimensional array variable
  44.         *       @return NULL
  45.         *       @param $var array
  46.         **/
  47.         function transpose(array &$var) {
  48.                 $out=[];
  49.                 foreach ($var as $keyx=>$cols)
  50.                         foreach ($cols as $keyy=>$valy)
  51.                                 $out[$keyy][$keyx]=$valy;
  52.                 $var=$out;
  53.         }
  54.  
  55.         /**
  56.         *       Sort a multi-dimensional array variable on a specified column
  57.         *       @return bool
  58.         *       @param $var array
  59.         *       @param $col mixed
  60.         *       @param $order int
  61.         **/
  62.         function sort(array &$var,$col,$order=SORT_ASC) {
  63.                 uasort(
  64.                         $var,
  65.                         function($val1,$val2) use($col,$order) {
  66.                                 list($v1,$v2)=[$val1[$col],$val2[$col]];
  67.                                 $out=is_numeric($v1) && is_numeric($v2)?
  68.                                         Base::instance()->sign($v1-$v2):strcmp($v1,$v2);
  69.                                 if ($order==SORT_DESC)
  70.                                         $out=-$out;
  71.                                 return $out;
  72.                         }
  73.                 );
  74.                 $var=array_values($var);
  75.         }
  76.  
  77.         /**
  78.         *       Change the key of a two-dimensional array element
  79.         *       @return NULL
  80.         *       @param $var array
  81.         *       @param $old string
  82.         *       @param $new string
  83.         **/
  84.         function changekey(array &$var,$old,$new) {
  85.                 $keys=array_keys($var);
  86.                 $vals=array_values($var);
  87.                 $keys[array_search($old,$keys)]=$new;
  88.                 $var=array_combine($keys,$vals);
  89.         }
  90.  
  91.         /**
  92.         *       Return month calendar of specified date, with optional setting for
  93.         *       first day of week (0 for Sunday)
  94.         *       @return array
  95.         *       @param $date string
  96.         *       @param $first int
  97.         **/
  98.         function calendar($date='now',$first=0) {
  99.                 $out=FALSE;
  100.                 if (extension_loaded('calendar')) {
  101.                         $parts=getdate(strtotime($date));
  102.                         $days=cal_days_in_month(CAL_GREGORIAN,$parts['mon'],$parts['year']);
  103.                         $ref=date('w',strtotime(date('Y-m',$parts[0]).'-01'))+(7-$first)%7;
  104.                         $out=[];
  105.                         for ($i=0;$i<$days;$i++)
  106.                                 $out[floor(($ref+$i)/7)][($ref+$i)%7]=$i+1;
  107.                 }
  108.                 return $out;
  109.         }
  110.  
  111. }
  112.  
单独下载 单独下载matrix.php源码 - 下载整个fatfree源程序
相关源码/软件:
TSA-Travel-Sentry-master-keys - TSA 主密钥的 3D 再现 2017-05-12
python3-cookbook - 《Python Cookbook》 3rd Edition Translatio 2017-05-12
isso - Disqus 替代 https://posativ.org/isso/ 2017-05-12
hologram - 降价基于文件系统的风格指南。 http://trulia.github.io... 2017-05-12
www.html5rocks.com - .......a 争创一流资源为 web 开发人员 2017-05-12
rolify - Role management library with resource scoping ... 2017-05-13
jquery-mockjax - JQuery Mockjax 插件提供了简单、 极其灵活的接口,以嘲笑或模拟 ajax 请求和响应 2017-05-13
yo - CLI 工具运行自耕农发电机 http://yeoman.io 2017-05-13
GrowingTextView - UITextView 增长/收缩与文本并开始滚动时的含量达到一定数量的行。类似于苹果在 SMS 应用... 2017-05-13
phan - 潘是 php 的静态分析器。潘倾向于避免误报,并试图证明不正确,而不是正确性。 2017-05-13
CRYENGINE - CRYENGINE 是由 Crytek 创建一个功能强大的实时游戏开发平台。 ... 2017-06-11
postal - 2017-06-11
reactide - Reactide 是反应 web 应用程序开发的第一个专用的 IDE。http://reactide... 2017-06-11
rkt - rkt 是为 Linux 的 pod 本机容器引擎。它是可组合、 安全和建筑标准。 2017-06-11
uWebSockets - 小小的 Websocket https://forest.webvrexpe... 2017-06-11
realworld - 真实的世界-动力反应、 角、 节点,Django,和更多的模范 fullstack Medium.c... 2017-06-11
goreplay - GoReplay 是用于捕获和重播活 HTTP 交通到测试环境以不断地测试您的系统与实际数据的开源工... 2017-06-10
pyenv - 简单的 Python 版本管理 2017-06-10
redux-saga - Redux 应用程序替代副作用模型 https://redux-saga.g... 2017-06-10
angular-starter - 2017-06-10

 返回顶部