【发布时间】:2016-08-31 13:00:27
【问题描述】:
所以我在 PHP 中有以下数据数组
$array = array(
"animal" => "panda",
"location" => "San Diego",
"age" => "2",
),
array(
"animal" => "tiger",
"location" => "Bronx",
"age" => "5",
),
array(
"animal" => "panda",
"location" => "Bronx",
"age" => "3",
),
array(
"animal" => "tiger",
"location" => "bronx",
"age" => "3",
),
array(
"animal" => "panda",
"location" => "San Diego",
"age" => "2",
)
)
我想要做的是将其转换为一个关联数组,其中包含动物、位置和年龄的计数。因此,如果我想查看圣地亚哥有多少只 2 岁的熊猫,我会使用 $newArray['panda']['San Diego']['2'] 访问新数组,输出为 2。
我的问题是我可以轻松地运行一个循环并构建一个数组并在它完全静态时计算项目。
foreach($array as $a) {
$newArray[$a['animal']][$a['location']][$a['age']] += 1;
}
但是我想知道当键的数量是动态的时如何实现相同的概念。例如,如果一个呼叫中只有位置和动物,有时另一个呼叫中可能有位置、动物、年龄和性别。
我发现有一些示例说明了对关联数组执行此操作,但不适用于具有此特定用例的多维数组。
有什么想法吗?
【问题讨论】:
标签: php multidimensional-array associative-array