PHP将一个二维数组,以其中一列为KEY,一列为VALUE,返回一个一维数组

版权声明: https://blog.csdn.net/gwz1196281550/article/details/80811561
/**
 * 将一个二维数组,以其中一列为KEY,一列为VALUE,返回一个一维数组
 * @param array $array
 * @param null $column_key
 * @param $index_key
 * @throws \Exception
 * @return array
 */
public static function arrayColumn($array, $column_key, $index_key = null)
{
    if (!is_array($array) && !($array instanceof \ArrayAccess))
        throw new \Exception('Argument 1 passed to Tool_ArrayGroupBy::::arrayColumn() must be of the type array');

    if (function_exists('array_column ')) {
        return array_column($array, $column_key, $index_key);
    }

    $result = [];
    foreach ($array as $arr) {

        if (!is_array($arr) && !($arr instanceof \ArrayAccess)) continue;

        if (is_null($column_key)) {
            $value = $arr;
        } else {
            $value = $arr[$column_key];
        }

        if (!is_null($index_key)) {
            $key = $arr[$index_key];
            $result[$key] = $value;
        } else {
            $result[] = $value;
        }
    }

    return $result;
}

猜你喜欢

转载自blog.csdn.net/gwz1196281550/article/details/80811561