【发布时间】:2018-02-05 18:06:36
【问题描述】:
我有以下数组(数组很大):
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的项目? -
因为这是一个动态数组,调度中有一个Id,Name,Timestamp和空值,当事件发生时,新行被添加值,但旧的空值保留。
-
如果(对于相同的
id、timestamp和name)它们都具有null值,则应该删除哪个项目? -
数组键(行)应该被移除。有哪只!重复的 id、时间戳、名称但值为 null
标签: php arrays foreach filter unset