php数组获取指定数组中所有的指定元素的值

//从php数组中获取指定元素的所有值 使用php自带的array_column()函数

//这里我们获取$arr二维数组中所有的name元素的值

$arr = array(
    0 =>array('id'=>'89','name'=>'九阳神功','prices'=>99.00),
    1 =>array('id'=>'100','name'=>'降龙十八掌','prices'=>100.00),
    2 =>array('id'=>'60','name'=>'北冥神功','prices'=>100.00),
    3 =>array('id'=>'10','name'=>'.六脉神剑','prices'=>90.10),
    4 =>array('id'=>'55','name'=>'乾坤大挪移','prices'=>99.00),
);


$name = array_column($arr,'name');  //返回的是索引类型的一维数组 值为:$arr数组name的值

var_dump($name);
/*
 *输出结果如下:
 * array (size=5)
  0 => string '九阳神功' (length=12)
  1 => string '降龙十八掌' (length=15)
  2 => string '北冥神功' (length=12)
  3 => string '.六脉神剑' (length=13)
  4 => string '乾坤大挪移' (length=15)
 * */

以上是使用array_column()函数实现;


第二种方式可以使用php系统自带的array_map()函数

demo如下:

/*函数array_map()函数:多数组回调函数---将回调函数作用到给定数组的单元上
     * 1、语法:array array_map ( callback callback, array arr1 [, array ...] )
     * 2、描述:返回一个数组,该数组包含了 arr1 中的所有单元经过 callback 作用过之后的
     * 单元。callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
     * 3、注意事项:
     *   3.1、多数组回调函数作用于一个数组时,将保留原有数组的键名,也就是返回的数组的键名就是
     *   作用到给定数组的键名
     *   3.2、多数组回到函数作用于两个或多个数组时,他们的长度要一致,并且将忽略原来多个数组的
     *   键名,统一分配数字索引作为键名
     */

$arr = array(
    0 =>array('id'=>'89','name'=>'九阳神功','prices'=>200.00),
    1 =>array('id'=>'100','name'=>'降龙十八掌','prices'=>500.00),
    2 =>array('id'=>'60','name'=>'北冥神功','prices'=>700.00),
    3 =>array('id'=>'10','name'=>'.六脉神剑','prices'=>1500.10),
    4 =>array('id'=>'55','name'=>'乾坤大挪移','prices'=>2100.00),
    5 =>array('id'=>'55','name'=>'九阴真经','prices'=>400.00),
);

$a = array_map(function($element){
     /*
       $arr作为参数传入回调函数
      返回数组元素值的last_name对应值
    array_map返回数组,相当于把每个$element['name']存入新数组,所以是新建的索引
      */
    return $element['name'];
},$arr);

var_dump($a);

/*输出如下:
array (size=6)
  0 => string '九阳神功' (length=12)
  1 => string '降龙十八掌' (length=15)
  2 => string '北冥神功' (length=12)
  3 => string '.六脉神剑' (length=13)
  4 => string '乾坤大挪移' (length=15)
  5 => string '九阴真经' (length=12)
 *
 * */

以上是使用array_map()函数实现的


在取出的多条数据中,典型的二维数组,如果需要使用数据中单一的值与值对应的情况,array_column()即可完成,但是面对较复杂的数组结构,foreach才能让你更灵活,不过优先使用系统函数总是首选的。


声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

精彩评论

全部回复12人评论7,777人参与