Php 从不同数组中删除具有相同名称和值的重复键
我有以下8个来自API的关联数组,其中包括一个名为“platform”的键,该键的值为5或21Php 从不同数组中删除具有相同名称和值的重复键,php,arrays,Php,Arrays,我有以下8个来自API的关联数组,其中包括一个名为“platform”的键,该键的值为5或21 Array ( [0] => Array ( [category] => 0 [platform] => 5 [date] => 1163894400000 [region] => 2 [human] => 2006-Nov-19 [y] => 2006 [m] => 11 ) [1] => Array ( [category] => 0 [
Array ( [0] => Array ( [category] => 0 [platform] => 5 [date] => 1163894400000 [region] => 2 [human] => 2006-Nov-19 [y] => 2006 [m] => 11 ) [1] => Array ( [category] => 0 [platform] => 5 [date] => 1165017600000 [region] => 5 [human] => 2006-Dec-02 [y] => 2006 [m] => 12 ) [2] => Array ( [category] => 0 [platform] => 5 [date] => 1165449600000 [region] => 3 [human] => 2006-Dec-07 [y] => 2006 [m] => 12 ) [3] => Array ( [category] => 0 [platform] => 5 [date] => 1165536000000 [region] => 1 [human] => 2006-Dec-08 [y] => 2006 [m] => 12 ) [4] => Array ( [category] => 0 [platform] => 21 [date] => 1165017600000 [region] => 5 [human] => 2006-Dec-02 [y] => 2006 [m] => 12 ) [5] => Array ( [category] => 0 [platform] => 21 [date] => 1165795200000 [region] => 2 [human] => 2006-Dec-11 [y] => 2006 [m] => 12 ) [6] => Array ( [category] => 0 [platform] => 21 [date] => 1166140800000 [region] => 1 [human] => 2006-Dec-15 [y] => 2006 [m] => 12 ) [7] => Array ( [category] => 0 [platform] => 21 [date] => 1166486400000 [region] => 3 [human] => 2006-Dec-19 [y] => 2006 [m] => 12 ) )
在我的脚本中,我使用foreach循环在我的网站上显示实际的平台,而不是平台id(在本例中是“Wii”和“GameCube”,而不是5和21)。但是,由于关键“平台”包含8次(4次以“5”为值,4次以“21”为值),因此我在进行回音时有重复项。见下文:
我的代码:
foreach($game_platform_arrays as $key => $innerArray){
foreach($innerArray as $innerKey => $game_platform){
if ($innerKey == "platform" and $game_platform == "5"){
$game_platform = "Wii";
echo $game_platform;
}
if ($innerKey == "platform" and $game_platform == "21"){
$game_platform = "Nintendo GameCube";
echo $game_platform;
}
}
}
我的输出:
WiiWiiWiiWiiNintendo GameCubeNintendo GameCubeNintendo GameCubeNintendo GameCube
我不知道如何从输出中删除重复项。我的最佳猜测是从数组中删除具有相同名称和值的重复键,但我不确定如何继续。如果有人能给我指出正确的方向,我将不胜感激。下面是一个例子,说明如何做到这一点:
<?php
$game_platform_arrays = [
0 => [
'platform' => 5,
],
1 => [
'platform' => 5
],
2 => [
'platform' => 21
],
3 => [
'platform' => 21
]
];
$name = '';
foreach($game_platform_arrays as $key => $innerArray){
foreach($innerArray as $innerKey => $game_platform){
if ($innerKey == 'platform' && $game_platform == '5' && $name != 'Wii'){
echo $name = 'Wii';
}
if ($innerKey == 'platform' && $game_platform == '21' && $name != 'Nintendo GameCube'){
echo $name = 'Nintendo GameCube';
}
}
}
?>
在提交申请之前,先看看array\u unique
@Adrien,用谷歌搜索一下标题如何question@ThisGuyHasTwoThumbs谢谢我已经看了一眼,但当副本来自不同的数组时,这不起作用。@tereško在发布评论之前,你不要认为我没有做作业,谢谢你的回答!我认为这对我不起作用,因为数组是基于API中的json数据创建的,所以每次我请求时平台都会改变。如果我遗漏了什么,请告诉我。在你的问题中,你说它将是5或21-与你的代码所说的相同。到底是什么问题?请注意,如果游戏平台没有组合在一起,它就不起作用。谢谢你让我知道。我会留意的。你可以通过将name变量添加到数组中,检查它是否存在,如果存在,跳过它来解决这个潜在的问题<代码>如果(在数组()中)-基本上。