用于使用唯一键构建多维数组的模式

时间:2011-04-28 23:18:21

标签: php arrays

问题: 从对象/数组中提取数据,并使用多维数组表示此数据,该数组具有从内部循环生成的唯一键。

我总是发现自己正在构建像这样的多维数组:

$final_array = array();
foreach ($table as $row) {
    $key = null;
    $data = array();
    foreach ($row as $col => $val) {
        /* Usually some logic goes here that does 
           some data transformation / concatenation stuff */
        if ($col=='my_unique_key_name') {
            $key = $val;
        }
        $data[$col] = $val;
    }
    if (!is_null($key) {
        if (!isset($final_array[$key]) {
            $final_array[$key] = array();
        }
        $final_array[$key][] = $data;
    }
}

我不禁想知道我是否经常出于习惯这样做,但是所有关键检查和诸如此类的东西都让人觉得有些冗长。是否有我没有使用的本机功能?这可以重构成更简单的东西,还是我过度思考这个?

1 个答案:

答案 0 :(得分:0)

你为什么一直这样做?似乎不是日常工作中常见的东西...无论如何,这有点神秘(一个例子会很好)但你有没有使用数组的序列化转储的MD5哈希唯一地定义一个键?

$key = md5(serialize($value));