我正在尝试从我的数组中提取唯一的年龄id值:
Debugger :: dump($ rate_table_row ['Age'])的示例; :
...
array(
"id" => "15",
"name" => "55-59"
)
array(
"id" => "15",
"name" => "55-59"
)
array(
"id" => "15",
"name" => "55-59"
)
...
我试图通过这样做来处理:
$uniqueAgeArray = array_unique($rate_table_row['Age']);
print_r($uniqueAgeArray);
$ uniqueAgeArray 在任何意义上都不是唯一的。所有结果均按此印刷:
Array ( [id] => 15 [name] => 55-59 )
Array ( [id] => 15 [name] => 55-59 )
Array ( [id] => 15 [name] => 55-59 )
我试图消除此数组中任何重复的“id”或“name”。
关于我在这里做错了什么想法?
答案 0 :(得分:1)
来自PHP documentation for array_unique:
注意:请注意,array_unique()不适用于多维 阵列。
因此,您需要使用另一种方法,例如循环遍历数组并仅存储之前未遇到的值。
// Temporary index of unique id's and names
$_index = array(
'id' => array(),
'name' => array(),
);
// Final array with unique values
$uniqueAgeArray = array();
foreach ($rate_table_row['Age'] as $item)
{
// Check if id or name is already present
if (isset($_index['id'][$item['id']]) || isset($_index['name'][$item['name']]))
continue;
// Store in result
$uniqueAgeArray[] = $item;
// Store values in index
$_index['id'][$item['id']] = true;
$_index['name'][$item['name']] = true;
}