Синхронизировал частично с CMS2
This commit is contained in:
parent
6b412f5d6f
commit
f2938b1353
30 changed files with 1447 additions and 1099 deletions
|
|
@ -107,7 +107,7 @@ function compose() {
|
|||
*
|
||||
* @return array[int]mixed
|
||||
*/
|
||||
function rcurry() {
|
||||
function rcurry($_rest) {
|
||||
$closure = new __right(func_get_args ());
|
||||
return array($closure, 'apply');
|
||||
}
|
||||
|
|
@ -117,7 +117,7 @@ function rcurry() {
|
|||
*
|
||||
* @return array[int]mixed
|
||||
*/
|
||||
function lcurry() {
|
||||
function lcurry($_rest) {
|
||||
$closure = new __left(func_get_args ());
|
||||
return array($closure, 'apply');
|
||||
}
|
||||
|
|
@ -192,7 +192,7 @@ function __self($name, $o) {
|
|||
|
||||
function concat(/* $args ...*/) {
|
||||
$args = func_get_args();
|
||||
return implode($args);
|
||||
return implode("", $args);
|
||||
}
|
||||
|
||||
function __empty($x) {
|
||||
|
|
@ -229,6 +229,15 @@ function key_values($key, /*array|ArrayIterator*/ $array) {
|
|||
return $result;
|
||||
}
|
||||
|
||||
function key_values_object($key, /*array|ArrayIterator*/ $array) {
|
||||
$result = array();
|
||||
|
||||
foreach($array as $item) {
|
||||
$result[] = $item->{$key};
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
function assoc_key_values($key, $value, $array) {
|
||||
$result = array();
|
||||
foreach ($array as $item) {
|
||||
|
|
@ -245,7 +254,7 @@ function assoc_key($key, $array) {
|
|||
return $result;
|
||||
}
|
||||
|
||||
function _get($key, $value, $array) {
|
||||
function _get($key, /*.any.*/$value, /*.array.*/$array) {
|
||||
foreach ($array as $item) {
|
||||
if ($item[$key] == $value) return $item;
|
||||
}
|
||||
|
|
@ -265,7 +274,7 @@ function _get_key($key, $value, $array) {
|
|||
* @return bool
|
||||
*/
|
||||
function every(array $array, $callback) {
|
||||
foreach ($array as $key => $value) {
|
||||
foreach ($array as $value) {
|
||||
if (call_user_func($callback, $value) === false) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -337,10 +346,33 @@ if (!function_exists('hash_key')) {
|
|||
};
|
||||
}
|
||||
|
||||
function array_merge1($x, $y) {
|
||||
$result = $x;
|
||||
foreach ($y as $k => $v) {
|
||||
$result [$k] = $v;
|
||||
/**
|
||||
* Выбирает все сроки из таблицы с уникальными значениями ключа
|
||||
* @param $name Имя ключа
|
||||
* @param $table Двухмерный массив
|
||||
* @example
|
||||
* key_unique_values ('name', array (array ('name' => 1), array ('name' => 2), array ('name' => 1)))
|
||||
=> array (1, 2)
|
||||
* @end example
|
||||
*/
|
||||
function key_unique_values ($name, $table) {
|
||||
// Ищем уникальные значения для заданного ключа
|
||||
$keys = array ();
|
||||
foreach ($table as $row) {
|
||||
if (!in_array ($row[$name], $keys))
|
||||
$keys[] = $row[$name];
|
||||
}
|
||||
return $result;
|
||||
return $keys;
|
||||
}
|
||||
|
||||
/**
|
||||
* Сортировка двумерного массива по заданному ключу
|
||||
* @param $array Массив
|
||||
* @param $key Имя ключа по значению которого будет идти сравнение
|
||||
* @return Отсортированный массив
|
||||
*/
|
||||
function sortOn($array, $key, $fn = '__cmp') {
|
||||
usort ($array, rcurry($fn, $key));
|
||||
//usort ($array, create_function ('$x,$y', 'return __cmp ($x, $y, "'.$key.'");'));
|
||||
return $array;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue