一、从数组中取出一段
array_column() |
参数 | 必须 | 示例 |
需要取出数组列的多维数组 如果提供的是包含一组对象的数组, 只有 public 属性会被直接取出。 为了也能取出 private 和 protected 属性, 类必须实现__get() 和 __isset() 魔术方法。 | 是 | $arr = array( array( 'id' => 2135, 'first_name' => 'John', 'last_name' => 'Doe', ), array( 'id' => 3245, 'first_name' => 'Sally', 'last_name' => 'Smith', ), array( 'id' => 5342, 'first_name' => 'Jane', 'last_name' => 'Jones', ), array( 'id' => 5623, 'first_name' => 'Peter', 'last_name' => 'Doe', ) ); |
需要返回值的列 可以是索引数组的列索引, 或者是关联数组的列的键, 也可以是属性名。 也可以是NULL, 此时将返回整个数组 (配合 参数3 来重置数组键的时候,非常管用) | 是 | first_name |
作为返回数组的索引/键的列, 它可以是该列的整数索引, 或者字符串键值。 | 否 | id |
返回值 | 错误 / 异常 | 注意事项 |
从多维数组中返回单列数组。 | 无 | 当使用第三个参数时, 要注意第三个参数值的唯一性, 如果第三个参数值不唯一, 获取到的结果会少 |
例子1:取出first names列 |
|
返回结果:Array ( [0] => John [1] => Sally [2] => Jane [3] => Peter ) |
例子2:取出last names列,用相应的id作为键值 |
|
返回结果: Array ( [2135] => Doe [3245] => Smith [5342] => Jones [5623] => Doe ) |
|
返回结果: Array ( [2135] => John [3245] => Sally [5342] => Peter ) 当$records[2]['id'] == $records[3]['id']时,在使用第三个参数,返回结果就少了Jane这个值 故如想使用第三个参数,请确保唯一性 |
例子3:username 列是从对象获取 public 的 "username" 属性 |
|
返回结果: Array ( [0] => user 1 [1] => user 2 [2] => user 3 ) |
例子4:获取 username 列,从对象通过魔术方法 __get() 获取 private 的 "username" 属性。 |
|
返回结果: Array ( [0] => Fred [1] => Jane [2] => John ) 如果不提供__isset(),会返回空数组 |