今天写程序时遇到个问题,就是在查询俩表的数据后,给俩表循环做比较,得到的结果,数组索引不从0开始,导致返回前台的不是数组,而是个奇怪的json,从而报错。
[
'1'=>123,
'3'=>321
]
array_values($arr);
array_key_exists('键名', $arr);
返回值:存在返回true;不存在返回false
array_diff() 函数用于比较两个(或更多个)数组的值,并返回差集。该函数比较两个(或更多个)数组的值(key=>value 中的 value),并返回一个差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的值。
array_diff($a, $b);
array_sum($arr);
# 函数
array_push($arr, "数据1", "数据2");
# 应用
$arr = [];
$db = [1,2,3,4];
for($i=0; $i<count($db); $i++){
if($i == 1){
array_push($arr, $i);
}
}
array_merge(数组1,数组2,数组3)
isset($arr[$key])
implode("分隔符", 数组);implode(数组);
end($arr);
/**
* 根据键去重
* $list 数组
* $key 键名
*/
function ArrQuchong($list, $key)
{
$result = [];
$keys = [];
foreach($list as $item){
if(!in_array($item[$key],$keys)){
array_push($result,$item);
array_push($keys,$item[$key]);
}
}
return $result;
}
/**
* 排序
* $arr 要排序的数组
* $str 依照那个键排序
* $num 0,正序,1,倒序
*/
function paixu ($arr, $str, $num) {
if($num == 0){
# 排序
# @1 按照count键进行排序,但会把count键提取出来
$paixu = array_column($arr, $str);
# @2 数组2依照参数1的顺序,互相对比进行排序,SORT_DESC倒序,SORT_ASC正序
array_multisort($paixu, SORT_ASC, $arr);
}else{
# 排序
# @1 按照count键进行排序,但会把count键提取出来
$paixu = array_column($arr, $str);
# @2 数组2依照参数1的顺序,互相对比进行排序,SORT_DESC倒序,SORT_ASC正序
array_multisort($paixu, SORT_DESC, $arr);
}
return $arr;
}
$str = [1, 2, " "];
# 去掉数组里的空值
foreach ($str as $key => $value) {
if ($value === null || $value === '') {
unset($str[$key]);
}
}
# 拼接数组
$str_ = "";
for ($i = 0; $i < count($str); $i++) {
$str_ .= "<p>".$str[$i]."。</p>";
}
# 设置要删除的值
$remove_arr = [1, 5, '李'];
$arr = [1, 2, 3, 5, 10, '李', '张'];
$res = array_filter($arr, function($value) use ($remove_arr) {
return !in_array($value, $remove_arr);
});
# 索引重排
$res = array_values($res);