识别坏键并从阵列中删除

时间:2017-09-21 01:00:48

标签: php

我正在尝试从$ xdata中识别坏数组坏键列表,以便我可以从$ xdata和$ ydata中的匹配键中删除它

但是我在php中遇到以下错误: array_flip()期望参数1是数组,给定整数 array_diff_key():参数#2不是

中的数组

知道造成这种情况的原因是什么?

$badkeys = array();
//search array for empty x value
$badkeys = array_search('', $xdata);
//remove x and y values where empty x
$xdata = array_diff_key($xdata, array_flip($badkeys));
$ydata = array_diff_key($xdata, array_flip($badkeys));

//reset keys array
unset($badkeys);

//seach x array where data is less than 2 days ago (bugfix)
$keys = array_search(strtotime('-2 days'), strtotime($ydata));
//remove where ydata less than 2 days old (bugfix)
$xdata = array_diff_key($xdata, array_flip($keys));
$ydata = array_diff_key($ydata, array_flip($keys));

1 个答案:

答案 0 :(得分:1)

array_search函数返回第一个匹配元素的索引,而不是整个匹配数组。要获取所有匹配的密钥,请使用array_keys

// Search array for empty x value.
$badkeys = array_keys($xdata, '');

// Seach x array where data is less than 2 days ago (bugfix).
$keys = array_keys($xdata, strtotime("$ydata -2 days"));