WPJAM Basic 内置的数组处理函数

友情提示:小白购买需注意,程序不包安装,无技术支持,因资源可复制性,不接受任何理由退款。

本站资源仅供学习测试!不得用于非法用途!商业用途与本站无关!资源自行测试不做任何保证!

本站资源默认解压密码:www.itxen.cn或者自行在下载页面查询

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);
}
}
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);
  }
}
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_push($columns, ['page_title'=>'页面标题'], 'author');
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);
}
}
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);
  }
}
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
$array  = [100, 200, 300];
$value  = wpjam_array_first($array, function($value) {
  return $value >= 150;
});
// 200
$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;
}
}
function wpjam_array_pull(&$array, $key){
  if(isset($array[$key])){
    $value  = $array[$key];

    unset($array[$key]);
    
    return $value;
  }else{
    return null;
  }
}
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');
$name  = wpjam_array_pull($array, 'name');
$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;
}
function wpjam_array_except($array, $keys){
  if(is_string($keys)){
    $keys  = [$keys];
  }

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

  return $array;
}
function wpjam_array_except($array, $keys){ if(is_string($keys)){ $keys = [$keys]; } foreach($keys as $key){ unset($array[$key]); } return $array; }

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

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

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

$array
$array
$array =
wpjam_array_except($array, 'price');
wpjam_array_except($array, 'price');
wpjam_array_except($array, 'price');
------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞2 分享
So what if we fall down? At least we are still young.
摔倒了又怎样,至少我们还年轻
评论 抢沙发

请登录后发表评论

    暂无评论内容