WPJAM Basic 内置的数组处理函数

PHP 有很多非常好用的数组处理函数,PHP 数组函数官方文档都有 80 多个,但是在使用过程,有一些数组的操作使用比较多,我就把这些函数整理成工具函数,然后整合到 WPJAM Basic 中,方便自己的二次开放的方便使用。

wpjam_array_push

关联数组插入元素是无法指定位置的,只能插在最前或者最后面,所以第一个函数就是可以向关联数组指定的 Key 之前插入元素

function wpjam_array_push($array, $data=null, $key=false){
	$data	= (array)$data;
	$offset	= ($key===false)?false:array_search($key, array_keys($array));
	$offset	= ($offset)?$offset:false;

	if($offset){
		return array_merge(
			array_slice($array, 0, $offset),
			$data,
			array_slice($array, $offset)
		);
	}else{	// 没指定 $key 或者找不到,就直接加到末尾
		return array_merge($array, $data);
	}
}

比如下面在 $columns'author' 之前插入 ['page_title'=>'页面标题']

wpjam_array_push($columns, ['page_title'=>'页面标题'], 'author');

wpjam_array_first

PHP 的 array_filter() 函数可以通过回调函数过滤数组的元素,但是返回的是过滤后的数组,不过很多时候,我们只是简单的要求返回第一个通过测试的元素

function wpjam_array_first($array, $callback=null){
	if($callback && is_callable($callback)){
		foreach($array as $key => $value){
			if(call_user_func($callback, $value, $key)){
				return $value;
			}
		}
	}else{
		return current($array);
	}
}

使用非常简单的:

$array	= [100, 200, 300];
$value	= wpjam_array_first($array, function($value) {
	return $value >= 150;
});
// 200

wpjam_array_pull

要从关联数组中移除并返回指定的键值,一般需要两步操作,先取出,然后 unset 数组中的键值对,把这两个步骤合成一个函数:

function wpjam_array_pull(&$array, $key){
	if(isset($array[$key])){
		$value	= $array[$key];

		unset($array[$key]);
		
		return $value;
	}else{
		return null;
	}
}

然后直接调用即可:

$name	= wpjam_array_pull($array, 'name');

wpjam_array_excerpt

PHP 从关联数组中移除指定的键值对,一般使用 unset 函数,如果要移除多个键值对,就要调用多次的 unset 函数,所以就合并成一个函数 :

function wpjam_array_except($array, $keys){
	if(is_string($keys)){
		$keys	= [$keys];
	}

	foreach($keys as $key){
		unset($array[$key]);
	}

	return $array;
}

这样就可以通过下面方式移除键值对了:

$array = wpjam_array_except($array, ['price','description']);

如果仅仅移除一个键值对,还可以直接传递字符串:

$array = wpjam_array_except($array, 'price'); 

©我爱水煮鱼,本站推荐使用的主机:阿里云,国外主机建议使用BlueHost

本站长期承接 WordPress 优化建站业务,请联系微信:「chenduopapa」。

热门文章