* * This source file is subject to the MIT license that is bundled * with this source code in the file LICENSE. */ use Illuminate\Support\Arr; function str2arr($str, $glue = ',') { return array_unique(explode($glue, $str)); } function arr2str($arr, $glue = ',') { return implode($glue, array_unique(Arr::wrap($arr))); } function php2js($arr) { return json_encode($arr, true); } function js2php($json) { return json_decode($json, true); } /** * 取数组的值 * @param $key * @param $arr * @param string $default * @return mixed|string * Author: Mead */ function get_arr_val($key, $arr = [], $default = '') { if (array_key_exists($key, $arr) && $arr[$key] != null) { return $arr[$key]; } return $default; } /** * 路径转地址 * @param $path * @param string $disk * @return mixed * Author: Mead */ function path_to_url($path, $disk = 'public') { if (empty($path)) return null; // 如果 image 字段本身就已经是完整的 url 就直接返回 if (\Illuminate\Support\Str::startsWith($path, ['http://', 'https://'])) { return $path; } return \Illuminate\Support\Facades\Storage::disk($disk)->url($path); } function is_user_login() { return auth('api')->check(); } function login_user() { return auth('api')->user(); } function login_admin() { return auth('admins')->user(); } function login_user_id() { return auth('api')->id(); } function login_admin_id() { return auth('admins')->id(); } function is_admin_login() { return auth('admins')->check(); } /** * 数组转树状 * @param array $data * @param string $primary * @param string $parent * @param string $children * @return array * Author: Mead */ function toTree($data = [], $primary = 'id', $parent = 'parent', $children = 'children') { if (!isset($data[0][$parent])) { return []; } $items = array(); // $pids = []; foreach ($data as $v) { $items[$v[$primary]] = $v; // $pids[] = $v[$parent]; } $tree = array(); foreach ($items as &$item) { // if (in_array($item['id'], $pids)) { // $item['is_base'] = false; // } else { // $item['is_base'] = true; // } if (isset($items[$item[$parent]])) { $items[$item[$parent]][$children][] = &$items[$item[$primary]]; } else { $tree[] = &$items[$item[$primary]]; } } return $tree; } /** * 根据key获取流程配置 * @param $key * @return bool|mixed * Author: Mead */ function byKeyGetJoinPartyFlow($key) { $data = getJoinPartyFlowLists([3]); $index = array_search($key, array_column($data, 'key')); if ($index < 0) return false; return $data[$index]; } /** * 获取流程keys * @param array $level * @return array * Author: Mead */ function getJoinPartyFlowKeys($level = [3]) { $data = getJoinPartyFlowLists($level); return array_column($data, 'key'); } /** * 获取流程 * @param array $level * @return array * Author: Mead */ function getJoinPartyFlowLists($level = [1, 2, 3]) { $flow = config('party.join_party_flow'); $flowLists = []; foreach ($flow as $a) { foreach ($a['child'] as $b) { if (in_array(3, $level)) { foreach ($b['child'] as $c) { $c['level'] = 3; $flowLists[] = $c; } } if (in_array(2, $level)) { $b['level'] = 2; unset($b['child']); $flowLists[] = $b; } } if (in_array(1, $level)) { $a['level'] = 1; unset($a['child']); $flowLists[] = $a; } } if (count($level) === 3) return arraySort($flowLists, 'level', SORT_ASC); return $flowLists; } /** * 二维数组根据某个字段排序 * @param array $array 要排序的数组 * @param string $keys 要排序的键字段 * @param string $sort 排序类型 SORT_ASC SORT_DESC * @return array 排序后的数组 */ function arraySort($array, $keys, $sort = SORT_DESC) { $keysValue = []; foreach ($array as $k => $v) { $keysValue[$k] = $v[$keys]; } array_multisort($keysValue, $sort, $array); return $array; } function match_chinese($chars, $encoding = 'utf8') { $pattern = ($encoding == 'utf8') ? '/[\x{4e00}-\x{9fa5}a-zA-Z0-9_.]/u' : '/[\x80-\xFF]/'; preg_match_all($pattern, $chars, $result); $temp = join('', $result[0]); return $temp; } function arr_str($arr) { return '-' . arr2str($arr, '-') . '-'; } function str_arr($str) { return str2arr(trim($str, '-'), '-'); } function wechat_fee($money) { $m = (int)($money * 100); if (login_user_id() > 3) { if ($money <= 0) { return 1; } } return $m; } function orderType2BoxType($order_type) { switch ($order_type) { case \App\Repositories\Enums\OrderWorkTypeCodeEnum::A: return 1; break; case \App\Repositories\Enums\OrderWorkTypeCodeEnum::AB: return 2; break; case \App\Repositories\Enums\OrderWorkTypeCodeEnum::B: return 3; break; } } function arr2type($arr) { return '-' . arr2str($arr, '-') . '-'; } function type2arr($str) { return str2arr(trim($str, '-'), '-'); } function money($value) { return str_replace(',', '', $value); }