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


Patterns for building multidimensional array with unique key

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

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

$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;
    }
}

我忍不住想知道我是否一直这样做是出于习惯,但所有的钥匙检查等等都让我觉得有点冗长。有没有我没有使用的本机功能?这能被重构成更简单的东西吗?还是我想得太多了?

你为什么总是这么做?这似乎不是一个人日常工作中常见的东西。。。无论如何,这有点神秘(举个例子会很好(,但你有没有想过使用数组的序列化转储的MD5哈希来唯一定义密钥?

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