在PHP中,数组可以包含不同类型的数据,例如字符串、整数、浮点数、布尔值、对象、数组等。你可以根据数据类型从数组中提取特定类型的数据。以下是一些常见的方法来提取不同类型的数据:
$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
)
$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
)
$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
)
$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
会被输出为 1
,false
会被输出为空值。
$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
)
)
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
)
)
如果你想一次性提取多种类型的数据,可以使用 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_filter
和 is_*
系列函数(如 is_string
、is_int
、is_float
、is_bool
、is_array
、is_object
等),你可以轻松地从PHP数组中提取特定类型的数据。