让我们来点插曲,了解下如何进行一些数据操作,这里会讲到如何通过数组函数对数据进行过滤数据提取。
小实践
建立一个 index.php
文件。在这其中,我们先定义个类 Post
和相应数据
<?php
class Post
{
public $title;
public $published;
public function __construct($title, $published)
{
$this->title = $title;
$this->published = $published;
}
}
$posts = [
new Post('My First Post', true),
new Post('My Second Post', true),
new Post('My Third Post', true),
new Post('My Fourth Post', false)
];
接下来我们要对 $posts
数组进行一些操作。
array_filter
array_filter — 用回调函数过滤数组中的单元。更多内容
在文件 index.php
中追加内容:
// 过滤数据得到未发布的文章
$unpublishedPosts = array_filter($posts, function($post) {
return ! $post->published;
});
var_dump($unpublishedPosts);
// 过滤得到已发布的文章
$publishedPosts = array_filter($posts, function($post) {
return $post->published;
});
var_dump($publishedPosts);
array_map
array_map — 为数组的每个元素应用回调函数。更多内容
// 调整数据格式
$modified = array_map(function($post) {
return ['title' => $post->title];
}, $posts);
array_column
array_column — 返回数组中指定的一列。更多内容
// 提取列(这里前提是 title 作为 Post 的属性其访问修饰符必须是 public)
$titles = array_column($posts, 'title');
var_dump($titles);
最后
这里简单介绍了如何通过数组函数过滤大操作相关的数据,如果想要了解更多关于数组函数的信息,请参考 PHP手册:数组函数