/**
* 多维数组,根据特定key的值查找所属key
*/
function search()
{
$arr = [
[
'a' => 1,
'b' => 2
],
[
'a' => 3,
'b' => 4
]
];
echo('key为:' . array_search(3, array_column($arr, 'a')));
}
/**
* 二维数组去重
*/
function removeSame()
{
$array = [['a' => 3, 'b' => 2], ['a' => 2, 'b' => 3], ['a' => 3, 'b' => 2]];
echo '原数组:';
var_dump($array);
$byKey = (array_column($array, null, 'b'));
echo '根据指定key去重:';
var_dump($byKey);
$byAll = array_map("unserialize", array_unique(array_map("serialize", $array)));
echo '根据数组去重:';
var_dump($byAll);
}
//多维数组排序
array_multisort(array_column($list, 'price'), SORT_ASC, $list);
//删除文件夹
function deldir($dir)
{
//先删除目录下的文件:
$dh = opendir($dir);
while ($file = readdir($dh)) {
if ($file != "." && $file != "..") {
$fullpath = $dir . "/" . $file;
if (!is_dir($fullpath)) {
unlink($fullpath);
} else {
deldir($fullpath);
}
}
}
closedir($dh);
//删除当前文件夹:
if (rmdir($dir)) {
return true;
} else {
return false;
}
}
//数组降维
$a = [
'1' => [[1], [2]],
'2' => [[4]],
'5' => [[7], [6]],
];
$result = array_reduce($a, array_merge, []);
echo json_encode($a);
//输出结果 [[1],[2],[4],[7],[6]]
/**
* 递归生成目录
* @param $dir
* @return bool|string
*/
function makeStaticFilePath($dir)
{
if (!$dir) {
return false;
}
//检查目录,并创建
$dirArr = explode('/', $dir);
$dirArr = array_filter($dirArr);
$filePath = '/';
foreach ($dirArr as $key => $val) {
$filePath .= $val . "/";
if (!file_exists($filePath)) {
@mkdir($filePath);
}
}
return $filePath;
}
PHP读取emoji表情方法
$this->dataModel->execute('set names utf8mb4;');
$this->dataModel->select();
PhpSpreadsheet读取excel
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
// 实例化 Xlsx,如果想要对 Xls 文件进行操作,这里 new Xls() 即可
$reader = new Xlsx();
$spreadsheet = $reader->load("xlsx文件的位置.xlsx");
// 将Excel文件的第一个sheet的数据转化为数组
$datas = $spreadsheet->getActiveSheet()->toArray();