class Util
{
/**
* 获取多列的数组
*
* @access protected
* @param array $array 待处理数组
* @param array $key 期望键索引
* @param boolean $strict 是否严格(每个数组满足所有键索引存在)
* @return array 结果集
*/
protected function _arrayColumns(array $array, array $key, $strict = false)
{
$result = array();
foreach ($array as $val) {
$temp = array();
foreach ($key as $value) {
if (array_key_exists($value, $val)) {
$temp[$value] = $val[$value];
}
}
if (!$strict || ($strict && count($temp) == count($key))) {
$result[] = $temp;
}
}
return $result;
}
/**
* 获取给定索引的数组
*
* @access public
* @static
* @param array $array 待处理数组
* @param mixed $key 期望键索引
* @param boolean $strict 是否严格(每个数组满足所有键索引存在),仅对多列生效
* @return array 结果集
*/
public static function arrayColumn(array $array, $key, $strict = false)
{
//多列数组,多列处理
if (is_array($key) && count($key) > 1) {
return $this->_arrayColumns($array, $key, $strict);
}
$key = is_array($key) ? $key[0] : $key;
if (function_exists('array_column')) {
return array_column($array, key);
}
$result = array();
foreach ($array as $val) {
if (array_key_exists($key, $val)) {
$result[] = $val[$key];
}
}
return $result;
}
}
需求决定了我的改造
假如你有其他需求或者更好的建议,请不要吝啬,联系我