我一直在试图让一些显示逻辑行为并保持它所属的位置,并且代码已经变成了一个有趣的小问题,很适合做一个通用的解决方案。按照它的值分组一个二维数组
熊与我,它看起来像一堵文字,但我试图用简单的示例数据很好地格式化,所以它应该可以通过快速浏览后可以理解。
如果由于某种原因,这整件事是一个可怕的想法,我需要告诉我之前,我创造了一个侮辱众神。
与这样的数据开始,例如:
$data = array(
array(
'name' => 'Dave',
'age' => '21',
'city' => 'New York',
),
array(
'name' => 'Mike',
'age' => '19',
'city' => 'Chicago',
),
array(
'name' => 'John',
'age' => '21',
'city' => 'Chicago',
),
array(
'name' => 'Matt',
'age' => '19',
'city' => 'New York',
),
array(
'name' => 'Luke',
'age' => '21',
'city' => 'New York',
),
);
随着键名,通过该组的数据的阵列,如
$groups = array('city', 'age);
然后成为数据:
$data = array(
'New York' => array(
'21' => array(
array(
'name' => 'Dave',
'age' => '21',
'city' => 'New York',
),
array(
'name' => 'Luke',
'age' => '21',
'city' => 'New York',
),
),
'19' => array(
array(
'name' => 'Matt',
'age' => '19',
'city' => 'New York',
),
),
),
'Chicago' => array(
'19' => array(
array(
'name' => 'Mike',
'age' => '19',
'city' => 'Chicago',
),
),
'21' => array(
array(
'name' => 'John',
'age' => '21',
'city' => 'Chicago',
),
),
),
);
当我说“一般解决方案”,我的意思是我试着根据您要求它分组的关键名称的数量,将事物分组到任何嵌套级别。
这感觉就像我可以立即解决的问题,如果我只是知道一些随机的PHP语法深奥的一点。有什么建议么?我会尝试更新这个是如果我在这段时间弄清楚的。
该死的男人,这正是我所说的。我看到你的小忍者编辑也停止无限递归,很好!从字面上来看,需要改变的唯一一件事是为了=> foreach而完成。这意味着你甚至没有测试这个来捕捉语法错误,而实际的复杂部分是第一次。我敬畏。 – Henry 2010-10-12 18:10:17
嘿,我最近一直在和Python一起工作,所以我忘了让它们成为'foreach'。现在修复。 – Amber 2010-10-12 18:17:53