Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/flow-flo.../libs/cakephp/utility
File: Hash.php
[1000] Fix | Delete
$dir = strtolower($dir);
[1001] Fix | Delete
$ignoreCase = false;
[1002] Fix | Delete
[1003] Fix | Delete
// $type can be overloaded for case insensitive sort
[1004] Fix | Delete
if (is_array($type)) {
[1005] Fix | Delete
$type += ['ignoreCase' => false, 'type' => 'regular'];
[1006] Fix | Delete
$ignoreCase = $type['ignoreCase'];
[1007] Fix | Delete
$type = $type['type'];
[1008] Fix | Delete
}
[1009] Fix | Delete
$type = strtolower($type);
[1010] Fix | Delete
[1011] Fix | Delete
if ($dir === 'asc') {
[1012] Fix | Delete
$dir = \SORT_ASC;
[1013] Fix | Delete
} else {
[1014] Fix | Delete
$dir = \SORT_DESC;
[1015] Fix | Delete
}
[1016] Fix | Delete
if ($type === 'numeric') {
[1017] Fix | Delete
$type = \SORT_NUMERIC;
[1018] Fix | Delete
} elseif ($type === 'string') {
[1019] Fix | Delete
$type = \SORT_STRING;
[1020] Fix | Delete
} elseif ($type === 'natural') {
[1021] Fix | Delete
$type = \SORT_NATURAL;
[1022] Fix | Delete
} elseif ($type === 'locale') {
[1023] Fix | Delete
$type = \SORT_LOCALE_STRING;
[1024] Fix | Delete
} else {
[1025] Fix | Delete
$type = \SORT_REGULAR;
[1026] Fix | Delete
}
[1027] Fix | Delete
if ($ignoreCase) {
[1028] Fix | Delete
$values = array_map('mb_strtolower', $values);
[1029] Fix | Delete
}
[1030] Fix | Delete
array_multisort($values, $dir, $type, $keys, $dir, $type);
[1031] Fix | Delete
$sorted = [];
[1032] Fix | Delete
$keys = array_unique($keys);
[1033] Fix | Delete
[1034] Fix | Delete
foreach ($keys as $k) {
[1035] Fix | Delete
if ($numeric) {
[1036] Fix | Delete
$sorted[] = $data[$k];
[1037] Fix | Delete
continue;
[1038] Fix | Delete
}
[1039] Fix | Delete
if (isset($originalKeys[$k])) {
[1040] Fix | Delete
$sorted[$originalKeys[$k]] = $data[$originalKeys[$k]];
[1041] Fix | Delete
} else {
[1042] Fix | Delete
$sorted[$k] = $data[$k];
[1043] Fix | Delete
}
[1044] Fix | Delete
}
[1045] Fix | Delete
[1046] Fix | Delete
return $sorted;
[1047] Fix | Delete
}
[1048] Fix | Delete
[1049] Fix | Delete
/**
[1050] Fix | Delete
* Helper method for sort()
[1051] Fix | Delete
* Squashes an array to a single hash so it can be sorted.
[1052] Fix | Delete
*
[1053] Fix | Delete
* @param array $data The data to squash.
[1054] Fix | Delete
* @param string|null $key The key for the data.
[1055] Fix | Delete
* @return array
[1056] Fix | Delete
*/
[1057] Fix | Delete
protected static function _squash(array $data, $key = null)
[1058] Fix | Delete
{
[1059] Fix | Delete
$stack = [];
[1060] Fix | Delete
foreach ($data as $k => $r) {
[1061] Fix | Delete
$id = $k;
[1062] Fix | Delete
if ($key !== null) {
[1063] Fix | Delete
$id = $key;
[1064] Fix | Delete
}
[1065] Fix | Delete
if (is_array($r) && !empty($r)) {
[1066] Fix | Delete
$stack = array_merge($stack, static::_squash($r, $id));
[1067] Fix | Delete
} else {
[1068] Fix | Delete
$stack[] = ['id' => $id, 'value' => $r];
[1069] Fix | Delete
}
[1070] Fix | Delete
}
[1071] Fix | Delete
[1072] Fix | Delete
return $stack;
[1073] Fix | Delete
}
[1074] Fix | Delete
[1075] Fix | Delete
/**
[1076] Fix | Delete
* Computes the difference between two complex arrays.
[1077] Fix | Delete
* This method differs from the built-in array_diff() in that it will preserve keys
[1078] Fix | Delete
* and work on multi-dimensional arrays.
[1079] Fix | Delete
*
[1080] Fix | Delete
* @param array $data First value
[1081] Fix | Delete
* @param array $compare Second value
[1082] Fix | Delete
* @return array Returns the key => value pairs that are not common in $data and $compare
[1083] Fix | Delete
* The expression for this function is ($data - $compare) + ($compare - ($data - $compare))
[1084] Fix | Delete
* @link https://book.cakephp.org/3/en/core-libraries/hash.html#Cake\Utility\Hash::diff
[1085] Fix | Delete
*/
[1086] Fix | Delete
public static function diff(array $data, array $compare)
[1087] Fix | Delete
{
[1088] Fix | Delete
if (empty($data)) {
[1089] Fix | Delete
return (array)$compare;
[1090] Fix | Delete
}
[1091] Fix | Delete
if (empty($compare)) {
[1092] Fix | Delete
return (array)$data;
[1093] Fix | Delete
}
[1094] Fix | Delete
$intersection = array_intersect_key($data, $compare);
[1095] Fix | Delete
while (($key = key($intersection)) !== null) {
[1096] Fix | Delete
if ($data[$key] == $compare[$key]) {
[1097] Fix | Delete
unset($data[$key], $compare[$key]);
[1098] Fix | Delete
}
[1099] Fix | Delete
next($intersection);
[1100] Fix | Delete
}
[1101] Fix | Delete
[1102] Fix | Delete
return $data + $compare;
[1103] Fix | Delete
}
[1104] Fix | Delete
[1105] Fix | Delete
/**
[1106] Fix | Delete
* Merges the difference between $data and $compare onto $data.
[1107] Fix | Delete
*
[1108] Fix | Delete
* @param array $data The data to append onto.
[1109] Fix | Delete
* @param array $compare The data to compare and append onto.
[1110] Fix | Delete
* @return array The merged array.
[1111] Fix | Delete
* @link https://book.cakephp.org/3/en/core-libraries/hash.html#Cake\Utility\Hash::mergeDiff
[1112] Fix | Delete
*/
[1113] Fix | Delete
public static function mergeDiff(array $data, array $compare)
[1114] Fix | Delete
{
[1115] Fix | Delete
if (empty($data) && !empty($compare)) {
[1116] Fix | Delete
return $compare;
[1117] Fix | Delete
}
[1118] Fix | Delete
if (empty($compare)) {
[1119] Fix | Delete
return $data;
[1120] Fix | Delete
}
[1121] Fix | Delete
foreach ($compare as $key => $value) {
[1122] Fix | Delete
if (!array_key_exists($key, $data)) {
[1123] Fix | Delete
$data[$key] = $value;
[1124] Fix | Delete
} elseif (is_array($value) && is_array($data[$key])) {
[1125] Fix | Delete
$data[$key] = static::mergeDiff($data[$key], $value);
[1126] Fix | Delete
}
[1127] Fix | Delete
}
[1128] Fix | Delete
[1129] Fix | Delete
return $data;
[1130] Fix | Delete
}
[1131] Fix | Delete
[1132] Fix | Delete
/**
[1133] Fix | Delete
* Normalizes an array, and converts it to a standard format.
[1134] Fix | Delete
*
[1135] Fix | Delete
* @param array $data List to normalize
[1136] Fix | Delete
* @param bool $assoc If true, $data will be converted to an associative array.
[1137] Fix | Delete
* @return array
[1138] Fix | Delete
* @link https://book.cakephp.org/3/en/core-libraries/hash.html#Cake\Utility\Hash::normalize
[1139] Fix | Delete
*/
[1140] Fix | Delete
public static function normalize(array $data, $assoc = true)
[1141] Fix | Delete
{
[1142] Fix | Delete
$keys = array_keys($data);
[1143] Fix | Delete
$count = count($keys);
[1144] Fix | Delete
$numeric = true;
[1145] Fix | Delete
[1146] Fix | Delete
if (!$assoc) {
[1147] Fix | Delete
for ($i = 0; $i < $count; $i++) {
[1148] Fix | Delete
if (!is_int($keys[$i])) {
[1149] Fix | Delete
$numeric = false;
[1150] Fix | Delete
break;
[1151] Fix | Delete
}
[1152] Fix | Delete
}
[1153] Fix | Delete
}
[1154] Fix | Delete
if (!$numeric || $assoc) {
[1155] Fix | Delete
$newList = [];
[1156] Fix | Delete
for ($i = 0; $i < $count; $i++) {
[1157] Fix | Delete
if (is_int($keys[$i])) {
[1158] Fix | Delete
$newList[$data[$keys[$i]]] = null;
[1159] Fix | Delete
} else {
[1160] Fix | Delete
$newList[$keys[$i]] = $data[$keys[$i]];
[1161] Fix | Delete
}
[1162] Fix | Delete
}
[1163] Fix | Delete
$data = $newList;
[1164] Fix | Delete
}
[1165] Fix | Delete
[1166] Fix | Delete
return $data;
[1167] Fix | Delete
}
[1168] Fix | Delete
[1169] Fix | Delete
/**
[1170] Fix | Delete
* Takes in a flat array and returns a nested array
[1171] Fix | Delete
*
[1172] Fix | Delete
* ### Options:
[1173] Fix | Delete
*
[1174] Fix | Delete
* - `children` The key name to use in the resultset for children.
[1175] Fix | Delete
* - `idPath` The path to a key that identifies each entry. Should be
[1176] Fix | Delete
* compatible with Hash::extract(). Defaults to `{n}.$alias.id`
[1177] Fix | Delete
* - `parentPath` The path to a key that identifies the parent of each entry.
[1178] Fix | Delete
* Should be compatible with Hash::extract(). Defaults to `{n}.$alias.parent_id`
[1179] Fix | Delete
* - `root` The id of the desired top-most result.
[1180] Fix | Delete
*
[1181] Fix | Delete
* @param array $data The data to nest.
[1182] Fix | Delete
* @param array $options Options are:
[1183] Fix | Delete
* @return array of results, nested
[1184] Fix | Delete
* @see \Cake\Utility\Hash::extract()
[1185] Fix | Delete
* @throws \InvalidArgumentException When providing invalid data.
[1186] Fix | Delete
* @link https://book.cakephp.org/3/en/core-libraries/hash.html#Cake\Utility\Hash::nest
[1187] Fix | Delete
*/
[1188] Fix | Delete
public static function nest(array $data, array $options = [])
[1189] Fix | Delete
{
[1190] Fix | Delete
if (!$data) {
[1191] Fix | Delete
return $data;
[1192] Fix | Delete
}
[1193] Fix | Delete
[1194] Fix | Delete
$alias = key(current($data));
[1195] Fix | Delete
$options += [
[1196] Fix | Delete
'idPath' => "{n}.$alias.id",
[1197] Fix | Delete
'parentPath' => "{n}.$alias.parent_id",
[1198] Fix | Delete
'children' => 'children',
[1199] Fix | Delete
'root' => null,
[1200] Fix | Delete
];
[1201] Fix | Delete
[1202] Fix | Delete
$return = $idMap = [];
[1203] Fix | Delete
$ids = static::extract($data, $options['idPath']);
[1204] Fix | Delete
[1205] Fix | Delete
$idKeys = explode('.', $options['idPath']);
[1206] Fix | Delete
array_shift($idKeys);
[1207] Fix | Delete
[1208] Fix | Delete
$parentKeys = explode('.', $options['parentPath']);
[1209] Fix | Delete
array_shift($parentKeys);
[1210] Fix | Delete
[1211] Fix | Delete
foreach ($data as $result) {
[1212] Fix | Delete
$result[$options['children']] = [];
[1213] Fix | Delete
[1214] Fix | Delete
$id = static::get($result, $idKeys);
[1215] Fix | Delete
$parentId = static::get($result, $parentKeys);
[1216] Fix | Delete
[1217] Fix | Delete
if (isset($idMap[$id][$options['children']])) {
[1218] Fix | Delete
$idMap[$id] = array_merge($result, (array)$idMap[$id]);
[1219] Fix | Delete
} else {
[1220] Fix | Delete
$idMap[$id] = array_merge($result, [$options['children'] => []]);
[1221] Fix | Delete
}
[1222] Fix | Delete
if (!$parentId || !in_array($parentId, $ids)) {
[1223] Fix | Delete
$return[] =& $idMap[$id];
[1224] Fix | Delete
} else {
[1225] Fix | Delete
$idMap[$parentId][$options['children']][] =& $idMap[$id];
[1226] Fix | Delete
}
[1227] Fix | Delete
}
[1228] Fix | Delete
[1229] Fix | Delete
if (!$return) {
[1230] Fix | Delete
throw new InvalidArgumentException('Invalid data array to nest.');
[1231] Fix | Delete
}
[1232] Fix | Delete
[1233] Fix | Delete
if ($options['root']) {
[1234] Fix | Delete
$root = $options['root'];
[1235] Fix | Delete
} else {
[1236] Fix | Delete
$root = static::get($return[0], $parentKeys);
[1237] Fix | Delete
}
[1238] Fix | Delete
[1239] Fix | Delete
foreach ($return as $i => $result) {
[1240] Fix | Delete
$id = static::get($result, $idKeys);
[1241] Fix | Delete
$parentId = static::get($result, $parentKeys);
[1242] Fix | Delete
if ($id !== $root && $parentId != $root) {
[1243] Fix | Delete
unset($return[$i]);
[1244] Fix | Delete
}
[1245] Fix | Delete
}
[1246] Fix | Delete
[1247] Fix | Delete
return array_values($return);
[1248] Fix | Delete
}
[1249] Fix | Delete
}
[1250] Fix | Delete
[1251] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function