加密解密 获取昨天、今天、明天 身份证中间数字变星号 日期补0 计算数据是否已过期逻辑 数组根据相同值再分组 判断是否为微信端打开 判断是否为移动端 随机数:字母 过滤符号、过滤词组 根据身份证号计算年龄、性别 根据指定个数,为数组分组 防止上传超时 linux使用include报failed to open stream: No such file or directory错误 常用数组操作 常用字符串操作 常用数学操作 将网络图片保存到本地

常用数组操作

首页 > PHP > 原生PHP 更新日期:2024-07-30 11:08:32

数组索引从0开始

今天写程序时遇到个问题,就是在查询俩表的数据后,给俩表循环做比较,得到的结果,数组索引不从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)

判断数组(某个键)/变量是否存在,存在返回true

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);


标题导航