插件窝 干货文章 php数组怎么提取不同类型的数据

php数组怎么提取不同类型的数据

array 提取 类型 数据 338    来源:    2025-03-16

在PHP中,数组可以包含不同类型的数据,例如字符串、整数、浮点数、布尔值、对象、数组等。你可以根据数据类型从数组中提取特定类型的数据。以下是一些常见的方法来提取不同类型的数据:

1. 提取字符串类型的数据

$array = [1, "apple", 3.14, "banana", true, "cherry"];

$strings = array_filter($array, function($item) {
    return is_string($item);
});

print_r($strings);

输出:

Array
(
    [1] => apple
    [3] => banana
    [5] => cherry
)

2. 提取整数类型的数据

$array = [1, "apple", 3.14, "banana", true, 42];

$integers = array_filter($array, function($item) {
    return is_int($item);
});

print_r($integers);

输出:

Array
(
    [0] => 1
    [5] => 42
)

3. 提取浮点数类型的数据

$array = [1, "apple", 3.14, "banana", true, 42];

$floats = array_filter($array, function($item) {
    return is_float($item);
});

print_r($floats);

输出:

Array
(
    [2] => 3.14
)

4. 提取布尔类型的数据

$array = [1, "apple", 3.14, "banana", true, false];

$booleans = array_filter($array, function($item) {
    return is_bool($item);
});

print_r($booleans);

输出:

Array
(
    [4] => 1
    [5] => 
)

注意:true 会被输出为 1false 会被输出为空值。

5. 提取数组类型的数据

$array = [1, "apple", [1, 2, 3], "banana", true, ["a", "b", "c"]];

$arrays = array_filter($array, function($item) {
    return is_array($item);
});

print_r($arrays);

输出:

Array
(
    [2] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [5] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )
)

6. 提取对象类型的数据

class MyClass {
    public $name;
    public function __construct($name) {
        $this->name = $name;
    }
}

$array = [1, "apple", new MyClass("obj1"), "banana", true, new MyClass("obj2")];

$objects = array_filter($array, function($item) {
    return is_object($item);
});

print_r($objects);

输出:

Array
(
    [2] => MyClass Object
        (
            [name] => obj1
        )

    [5] => MyClass Object
        (
            [name] => obj2
        )
)

7. 提取特定类型的多个数据

如果你想一次性提取多种类型的数据,可以使用 array_filter 结合多个条件:

$array = [1, "apple", 3.14, "banana", true, 42, ["a", "b", "c"], new MyClass("obj1")];

$filtered = array_filter($array, function($item) {
    return is_string($item) || is_int($item);
});

print_r($filtered);

输出:

Array
(
    [0] => 1
    [1] => apple
    [3] => banana
    [5] => 42
)

总结

通过使用 array_filteris_* 系列函数(如 is_stringis_intis_floatis_boolis_arrayis_object 等),你可以轻松地从PHP数组中提取特定类型的数据。