Skip to content

Instantly share code, notes, and snippets.

@mikemadisonweb
Last active July 23, 2016 06:14
Show Gist options
  • Save mikemadisonweb/e67699872b721919e98d to your computer and use it in GitHub Desktop.
Save mikemadisonweb/e67699872b721919e98d to your computer and use it in GitHub Desktop.
Helper functions
<?php
/**
* Проверка элементов массива на дубликаты
* @param $array
* @return boolean
*/
function arrayHasDuplicates($array) {
return count($array) !== count(array_unique($array));
}
<?php
/**
* Преобразует любой мультиразмерный массив в одноразмерный
* @param array $array
* @param array $return
* @return array
*/
private function flattenArray($array, $return = array()) {
for($x = 0; $x < count($array); $x++) {
if(is_array($array[$x])) {
$return = $this->flattenArray($array[$x], $return);
}
else {
if(isset($array[$x])) {
$return[] = $array[$x];
}
}
}
return $return;
}
/**
* Преобразует любой мультиразмерный массив в одноразмерный
* @param array $array
* @return array
*/
private function flattenArray(array $array) {
$return = array();
array_walk_recursive($array, function($a,$b) use (&$return) { $return[$b] = $a; });
return $return;
}
<?php
/**
* Вспомогательная функция, чтобы вставить элемент в ассоциативный массив в указанное место
* @param $array
* @param $key
* @param $val
* @param $index
* @return array
*/
private function insertKeyValuePair($array, $key, $val, $index)
{
$arrayEnd = array_splice($array, $index);
$arrayStart = array_splice($array, 0, $index);
return (array_merge($arrayStart, array($key=>$val), $arrayEnd ));
}
<?php
/**
* Убирает все null из массива
* @param $array
* @return array
*/
private function notNullInArray($array)
{
return array_values(array_filter($array, function($var){return !is_null($var);} ));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment