重复键我有一个数组称为$myarray
-如何删除阵列
id position status name
4 23 4 john
3 45 3 mike
4 23 0 john
7 25 2 sam
等
我需要通过“ID”和滤波器阵列时,类似的记录发现,我需要评估由“状态“键删除匹配行中的数字,该数字为0或小于”状态“。有没有办法像一些功能一样快速地做到这一点?
重复键我有一个数组称为$myarray
-如何删除阵列
id position status name
4 23 4 john
3 45 3 mike
4 23 0 john
7 25 2 sam
等
我需要通过“ID”和滤波器阵列时,类似的记录发现,我需要评估由“状态“键删除匹配行中的数字,该数字为0或小于”状态“。有没有办法像一些功能一样快速地做到这一点?
这将删除所有发生的status=0
。如果妳想要保留这些行,当没有其他配套id
,除去$value['status'] > 0 &&
$cleanarray = array();
foreach ($myarray as $value) {
if (
$value['status'] > 0 && (
!array_key_exists($value['id'], $cleanarray) ||
$value['status'] > $cleanarray[$value['id']]['status']
)
) $new_cleanarray[$value['id']] = $value;
}
您可以使用array_multisort(..)
排序id
ASC然后status
DESC。然后,您可以遍历已排序的数组并删除之前已经看到id
的行。
这可能是你使用
我感到困惑的阵列结构。如果我想要麦克的名字,我会看看$ myarray [1] ['name'](第1行)还是$ myarray [3] ['name'](id = 3) –
注意: PHP数组。只有重复的值。正如这个问题是许多其他的重复:http://stackoverflow.com/questions/5960190/how-to-remove-duplicate-values-in-an-array – thwd