/**
* 递归查找
* @param $array
* @param $searchData
* @param int $i
* @param string $objKey
* @param string $objVal
* @return int|mixed
*/
function array_search_recursive($array,$searchData,$i = 0,$objKey = '查找的键名',$objVal = '返回的键名')
{
foreach ($array as $key => $value)
{
if ($value[$objKey] == $searchData[$i]) {
if (count($searchData)-1 > $i && is_array($value['children']) && !empty($value['children'])) {
return array_search_recursive($value['children'],$searchData,$i+1,$objKey,$objVal);
} else {
return $value[$objVal] ? $value[$objVal] : '';
}
}
}
return '';
}
/**
* 数组插入
* @param $array
* @param $position
* @param $insert_array
*/
function array_insert (&$array, $position, $insert_array) {
$first_array = array_splice ($array, 0, $position);
$array = array_merge ($first_array, $insert_array, $array);
}
/**
* 处理bootstrap表格合并
* @param $res [数据源]
* @param $fieldName ['合并字段']
* @return array
*/
function mergeCells($res,$fieldName)
{
$list = array();
foreach ($res as $key => $value) {
$index = $value['module_name'];
$list[$index][] = $res[$key];
}
$sortMap = array();
foreach ($list as $key => $value) {
$clone = $value;
foreach ($value as $k => $v) {
$index= $key.'_'.$v[$fieldName];
if ($sortMap[$index]) {
$index = $index.'_'.$k;
}
foreach ($clone as $m => $n) {
if ($v[$fieldName] === $n[$fieldName]) {
if (!$sortMap[$index]) {
$sortMap[$index] = 1;
} else {
$sortMap[$index] = intval($sortMap[$index]) + 1;
}
unset($clone[$m]);
} else {
break;
}
}
}
}
return $sortMap;
}