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');

版权声明:
作者:云小叔-高级程序员
链接:https://liboven.cn/356.html
来源:微芯引擎 秒加载 快如闪电
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
WPJAM Basic 内置的数组处理函数
一共有四个,都非常实用...
<<上一篇
下一篇>>
文章目录
关闭
目 录