我有以下阵列(阵列大):如何查找和删除php数组中几乎重复的行,这些行在一个键值上有所不同?
Array (
[0] => Array (
[id] => 1
[timestamp] => 1503050400
[name] => Event A
[value] => )
[1] => Array (
[id] => 2
[timestamp] => 1503446400
[name] => Event B
[value] => )
[2] => Array (
[id] => 2
[timestamp] => 1503446400
[name] => Event B
[value] => 71)
[3] => Array (
[id] => 3
[timestamp] => 1503720000
[name] => Event C
[value] => 12)
[4] => Array (
[id] => 3
[timestamp] => 1503720000
[name] => Event C
[value] => )
...
)
正如你可以看到,一些阵列键(行)具有相同的ID,时间戳和名称,但不同的价值。 我想找到并取消设置满足以下条件的行($ array [$ key]):
如果数组的键具有相同的名称,Id和时间戳,请删除此键,但只保留Value! = NULL
看起来像这样:
foreach ($array as $key => $row) {
if (...) {
unset($array[$key]);
}
else {}
}
print_r($array);
输出应该是:
Array (
[0] => Array (
[id] => 1
[timestamp] => 1503050400
[name] => Event A
[value] => )
[2] => Array (
[id] => 2
[timestamp] => 1503446400
[name] => Event B
[value] => 71)
[3] => Array (
[id] => 3
[timestamp] => 1503720000
[name] => Event C
[value] => 12)
...
)
为什么不直接过滤那些拥有空'value'项目? – RomanPerekhrest
因为这是一个动态数组,所以在时间表中有一个Id,Name,Timestamp和空值,当事件发生时,新行添加了值,但旧值与空值保留。 –
如果(对于同一个'id','timestamp'和'name')它们都具有'null'值,哪个项目应该被删除? – localheinz