array_reduce,array_column

将两个二维数组中两相同key下的值合并

$a = array( array ( 'id' => 1, 'catid' => 6));
$b = array( array ( 'title' => '标题', 'content' => '内容'));
//打印数据
print_r(array( $a[0]+$b[0]) );
print_r(array( array_merge($a[0], $b[0]) ));
print_r(array_map('array_merge', $a, $b));

都可以得到

Array(
    [0] => Array(
            [id] => 1
            [catid] => 6
            [title] => 标题
            [content] => 内容
        )
)

array_column返回数组中某个单一列的值。简化代码可少用foreach

array_reduce用回调函数迭代地将数组简化为单一的值:

#array_column和array_reduce组合使用

$serverList=array(3) {
  [1]=>
  array(1) {
    ["info"]=>
    string(58) "{"id":1,"ip":"192.168.1.1","zone":10,"dns":"www.test.com"}"
  }
  [2]=>
  array(1) {
    ["info"]=>
    string(58) "{"id":2,"ip":"192.168.1.2","zone":50,"dns":"www.test.com"}"
  }
  [3]=>
  array(1) {
    ["info"]=>
    string(58) "{"id":3,"ip":"192.168.1.3","zone":40,"dns":"www.test.com"}"
  }
}
//这种情况不使用foreach拿出每个info中的ip
//create_function是匿名函数,可以把$v理解成返回的结果值,$w 理解为第二层数组 
$arr = array_reduce($serverList, create_function('$v,$w', '$v[]=json_decode($w[info],true);return $v;'));
$ipInfo=array_column($arr, 'ip');  
var_dump($ipInfo);

输出:
array(3) {
  [0]=>
  string(11) "192.168.1.1"
  [1]=>
  string(11) "192.168.1.1"
  [2]=>
  string(11) "192.168.1.1"
}

array_search搜索数组中的值,返回对应的键

$a=array("a"=>"red","b"=>"green","c"=>"blue");

echo array_search("red",$a);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,270评论 0 4
  • foreach() | list() | extract | array_map() | array_walk()...
    彭晓华阅读 916评论 0 0
  • PHP常用函数大全 usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解...
    上街买菜丶迷倒老太阅读 1,382评论 0 20
  • 练习头发。临摹的是乱红的作品。然而刚开始给头发上线条,就发现完全画不出乱红大大的感觉,就有点烦躁了。后期更是完全按...
    悦离阅读 720评论 5 3
  • 一、集成微信支付必要SDK和前期的设置工作(参考官方文档) 微信支付官网文档不得不吐槽,这个官方文档难道是实习生写...
    GodfansMa阅读 881评论 0 3