1) { foreach ($p as $k => $v) { print_r($v); print_r('---'); } }else { print_r($p[0]); } die; } } /** * 多维数组去重并重新索引 * @param array $array 待处理的多维数组 * @return array 去重后并重新索引的数组 */ function uniqueMultidimensionalArray($array, $k = 'user_id') { $unique = []; $seenIds = []; // 用于记录已出现的user_id foreach ($array as $item) { // 确保子数组包含user_id字段 if (!isset($item[$k])) { continue; // 跳过不包含user_id的子数组(可选:也可抛出异常) } $userId = $item[$k]; // 如果user_id未出现过,则保留该记录 if (!in_array($userId, $seenIds)) { $seenIds[] = $userId; $unique[] = $item; } // 已出现的user_id会被自动跳过(去重) } // 重新索引数组(从0开始的连续数字键) return array_values($unique); } if(!function_exists('http_post')) { function http_post($url, $data, $headers = [], $timeout = 30, $contentType = 'application/json') { // 初始化cURL $ch = curl_init(); // 处理请求数据 if ($contentType === 'application/json') { $data = json_encode($data); } elseif (is_array($data)) { $data = http_build_query($data); } // 设置请求头 $defaultHeaders = [ "Content-Type: $contentType", "Content-Length: " . strlen($data) ]; $headers = array_merge($defaultHeaders, $headers); // 设置cURL选项 curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 执行请求 $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); $error = curl_error($ch); // 关闭cURL curl_close($ch); // 处理错误 if ($response === false) { return $error; } return $response; } }