Compare commits
1 Commits
188f0b57d0
...
feature/TT
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f275180571 |
@@ -15,7 +15,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"repositories": {
|
"repositories": {
|
||||||
"git.egplusww.jp.Composer": {
|
"packages.omnicomproduction.jp.Composer": {
|
||||||
"type": "composer",
|
"type": "composer",
|
||||||
"url": "https://packages.omnicomproduction.jp/api/packages/Composer/composer"
|
"url": "https://packages.omnicomproduction.jp/api/packages/Composer/composer"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -811,6 +811,87 @@ class ArrayHandler
|
|||||||
);
|
);
|
||||||
return $in_array;
|
return $in_array;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO: move to CoreLibs ArrayCombined
|
||||||
|
* return one random entry from an array (value)
|
||||||
|
* the return entry is null if the incoming array is empty
|
||||||
|
* the array can also be an array of arrays
|
||||||
|
*
|
||||||
|
* @param array<mixed> $array
|
||||||
|
* @return string|int|float|bool|array<mixed>|null
|
||||||
|
*/
|
||||||
|
public static function getRandomEntryFromArray(array $array): string|int|float|bool|array|null
|
||||||
|
{
|
||||||
|
if (empty($array)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
$random_index = array_rand($array);
|
||||||
|
return $array[$random_index];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO: move to CoreLibs ArrayCombined
|
||||||
|
* find and remove one value
|
||||||
|
* on default removes only the first entry
|
||||||
|
* on default does not strict compare
|
||||||
|
*
|
||||||
|
* @param array<mixed> $array
|
||||||
|
* @param string|int|float|bool|array<mixed> $value
|
||||||
|
* @param bool $strict [false]
|
||||||
|
* @return array<mixed>
|
||||||
|
*/
|
||||||
|
public static function removeArrayEntryByValue(
|
||||||
|
array $array,
|
||||||
|
string|int|float|bool|array $value,
|
||||||
|
bool $strict = false,
|
||||||
|
): array {
|
||||||
|
return array_filter($array, function ($element) use ($value, $strict) {
|
||||||
|
return $strict ?
|
||||||
|
$element !== $value :
|
||||||
|
$element != $value;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO: move to CoreLibs ArrayCombined
|
||||||
|
* add a string to each element in an array, default is at the end of the value,
|
||||||
|
* can be switched with the prefix flag
|
||||||
|
*
|
||||||
|
* @param array<string> $array
|
||||||
|
* @param string $string_to_add
|
||||||
|
* @param bool $prefix [false]
|
||||||
|
* @return array<string>
|
||||||
|
*/
|
||||||
|
public static function addStringToEachValueInArray(array $array, string $string_to_add, bool $prefix = false): array
|
||||||
|
{
|
||||||
|
return array_map(function ($value) use ($string_to_add, $prefix) {
|
||||||
|
return $prefix ?
|
||||||
|
$string_to_add . $value :
|
||||||
|
$value . $string_to_add;
|
||||||
|
}, $array);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* sort by key any array, even if it is nested
|
||||||
|
*
|
||||||
|
* @param array<mixed> $data
|
||||||
|
* @return array<mixed>
|
||||||
|
*/
|
||||||
|
public static function createSortedArrayByKey(array $data): array
|
||||||
|
{
|
||||||
|
// Sort by keys
|
||||||
|
ksort($data);
|
||||||
|
|
||||||
|
// Recursively sort nested arrays
|
||||||
|
foreach ($data as $key => $value) {
|
||||||
|
if (is_array($value)) {
|
||||||
|
$data[$key] = self::createSortedArrayByKey($value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// __END__
|
// __END__
|
||||||
|
|||||||
Reference in New Issue
Block a user