PHP多维数组转一维数组函数


做数据配置项时候,需要做缓存匹配,把多维数组的配置项,转换成一维数组。

场景:即把多维数组列表id和统计值转换成一维数组

PHP封装函数

/**
 * PHP 多维数组转换一维数组
 * @param array $list
 * @param string $key
 * @param string $value
 * @return array|false
 */
function array_more_to_one(array $list,string $key = 'id',string $value = 'count')
{
    $rsp = [];
    if (!empty($list)){
        // array_column 提取id作为键,field 作为值
        $keys = array_column($list, $key);
        $values = array_column($list, $value);
        //然后使用array_combine将这两个数组合并,其中一个数组的值为新的键,另一个数组的值为新的值
        $rsp = array_combine($keys, $values);
    }
    return $rsp;
}

示例

原始数据:

Array
(
    [0] => Array
        (
            [id] => 1
            [title] => 生活随笔
            [count] => 2
        )

    [1] => Array
        (
            [id] => 2
            [title] => PHP
            [count] => 22
        )

    [2] => Array
        (
            [id] => 3
            [title] => showdoc
            [count] => 1
        )

    [3] => Array
        (
            [id] => 4
            [title] => JavaScript
            [count] => 8
        )

)

调用函数 输出:

Array
(
    [1] => 2
    [2] => 22
    [3] => 1
    [4] => 8
)