php数组空值怎么去除

worktile 其他 162

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    要去除PHP数组中的空值,可以使用array_filter()函数来实现。该函数将会遍历数组中的每个元素,并根据回调函数的返回值来确定是否保留该元素。

    下面是一个示例代码:

    “`php

    “`

    输出结果为:
    “`
    Array
    (
    [0] => 1
    [1] => 2
    [3] => 3
    [5] => 4
    [6] => false
    )
    “`

    可以看到,空值(null、空字符串、0和false)都被成功去除了。在回调函数中,返回值为false的元素会被过滤掉。

    需要注意的是,array_filter()函数会自动重置数组的键名,如果想保留原始数组的键名,可以使用array_filter()函数的第二个参数来指定保留键名。

    例如:

    “`php
    $result = array_filter($array, function($value) {
    return !empty($value);
    }, ARRAY_FILTER_USE_BOTH);
    “`

    使用数组常量`ARRAY_FILTER_USE_BOTH`可以保留键名,这样就可以得到保留原始数组键名的结果。

    希望对你有帮助!

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    去除PHP数组中的空值有多种方法可以实现。下面列举了其中的五种常见方法:

    1. 使用array_filter()函数:array_filter()函数可以过滤数组中的元素,并返回一个过滤后的数组。通过将回调函数设置为”not null”,可以将空值从数组中移除。示例如下:

    “`php
    $array = array(1, 2, “”, 3, null, 4);
    $array = array_filter($array, ‘strlen’);
    “`

    2. 使用foreach循环:使用foreach循环遍历数组,并使用unset()函数移除空值。示例如下:

    “`php
    $array = array(1, 2, “”, 3, null, 4);
    foreach ($array as $key => $value) {
    if (empty($value)) {
    unset($array[$key]);
    }
    }
    “`

    3. 使用array_values()函数:使用array_values()函数重新索引数组,这会移除所有的键名,并且重新从0开始编号。由于重新索引后,空值的键名会被移除,因此空值也会从数组中消失。示例如下:

    “`php
    $array = array(1, 2, “”, 3, null, 4);
    $array = array_values($array);
    “`

    4. 使用array_diff()函数:使用array_diff()函数将数组与一个只包含空值的数组进行比较,即可得到不包含空值的数组。示例如下:

    “`php
    $array = array(1, 2, “”, 3, null, 4);
    $array = array_diff($array, array(“”));
    “`

    5. 使用array_unique()函数:使用array_unique()函数去除数组中的重复值,并返回一个新的不包含重复值的数组。由于空值在数组中是相同的,因此可以通过使用array_unique()函数去除重复的空值。示例如下:

    “`php
    $array = array(1, 2, “”, 3, null, 4);
    $array = array_unique($array, SORT_STRING);
    “`

    上述方法中的任何一种都可以实现去除PHP数组中的空值。根据实际需求选择合适的方法即可。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在PHP中,去除数组中的空值有多种方法。下面将介绍四种常用的方法和操作流程。

    方法一:使用array_filter()函数。
    操作流程:
    1. 准备一个包含空值的数组。
    2. 使用array_filter()函数,传入需要处理的数组,第二个参数为一个匿名函数,用来判断数组元素是否为空值。
    3. 匿名函数中使用trim()函数去除数组元素前后的空格,并使用empty()函数判断是否为空值。
    4. 函数会返回一个新数组,其中不包含空值。

    代码示例:
    “`php
    $array = array(“apple”, “”, “orange”, ” “, “banana”);
    $array = array_filter($array, function($value) {
    $value = trim($value);
    return !empty($value);
    });

    // 打印结果
    print_r($array);
    “`

    方法二:使用foreach循环和unset()函数。
    操作流程:
    1. 准备一个包含空值的数组。
    2. 使用foreach循环遍历数组,判断数组元素是否为空值。
    3. 如果为空值,则使用unset()函数删除该数组元素,不包括键值。
    4. 循环结束后,数组中将不再包含空值。

    代码示例:
    “`php
    $array = array(“apple”, “”, “orange”, ” “, “banana”);
    foreach ($array as $key => $value) {
    if (empty(trim($value))) {
    unset($array[$key]);
    }
    }

    // 打印结果
    print_r($array);
    “`

    方法三:使用array_map()函数和trim()函数。
    操作流程:
    1. 准备一个包含空值的数组。
    2. 使用array_map()函数,传入需要处理的数组和trim()函数作为回调函数,对数组中的每个元素进行处理。
    3. trim()函数会去除数组元素前后的空格。
    4. 函数会返回一个新数组,其中不包含空值。

    代码示例:
    “`php
    $array = array(“apple”, “”, “orange”, ” “, “banana”);
    $array = array_map(‘trim’, $array);
    $array = array_filter($array);

    // 打印结果
    print_r($array);
    “`

    方法四:使用array_diff()函数。
    操作流程:
    1. 准备一个包含空值的数组和一个只包含空值的临时数组。
    2. 使用array_diff()函数,传入需要处理的数组和临时数组,函数会返回两个数组的差集,即删除了空值的数组。

    代码示例:
    “`php
    $array = array(“apple”, “”, “orange”, ” “, “banana”);
    $emptyArray = array_fill(0, count($array), ”);
    $array = array_diff($array, $emptyArray);

    // 打印结果
    print_r($array);
    “`

    以上四种方法都可以有效地去除PHP数组中的空值。根据实际需求和代码风格的不同,可以选择适合自己的方法进行处理。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部