You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.2 KiB
54 lines
1.2 KiB
<?php
|
|
|
|
namespace tests;
|
|
|
|
use think\db\ConnectionInterface;
|
|
use think\facade\Db;
|
|
use function array_column;
|
|
use function array_combine;
|
|
use function array_map;
|
|
use function call_user_func;
|
|
use function is_callable;
|
|
use function is_int;
|
|
use function sort;
|
|
|
|
function array_column_ex(array $arr, array $column, ?string $key = null): array
|
|
{
|
|
$result = array_map(function ($val) use ($column) {
|
|
$item = [];
|
|
foreach ($column as $index => $key) {
|
|
if (is_callable($key)) {
|
|
$item[$index] = call_user_func($key, $val);
|
|
} elseif (is_int($index)) {
|
|
$item[$key] = $val[$key];
|
|
} else {
|
|
$item[$key] = $val[$index];
|
|
}
|
|
}
|
|
return $item;
|
|
}, $arr);
|
|
|
|
if (!empty($key)) {
|
|
$result = array_combine(array_column($arr, 'id'), $result);
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
function array_value_sort(array $arr)
|
|
{
|
|
foreach ($arr as &$value) {
|
|
sort($value);
|
|
}
|
|
}
|
|
|
|
function query_mysql_connection_id(ConnectionInterface $connect): int
|
|
{
|
|
$cid = $connect->query('SELECT CONNECTION_ID() as cid')[0]['cid'];
|
|
return (int) $cid;
|
|
}
|
|
|
|
function mysql_kill_connection(string $name, $cid)
|
|
{
|
|
Db::connect($name)->execute("KILL {$cid}");
|
|
}
|
|
|