array_diff( $files, $data[ ][0] )
是否可以仅通过存储在[0]位置内的值进行比较并迭代空[]?
我的问题是我的$data
数组是一个二维数组,而$files
是一个数组。 Y
的{{1}}坐标包含$data
的{{1}}坐标。
这基本上就是我正在寻找的
X
如果这是不可能的使用预先制作的$files
函数来实现,那么解决此问题的最佳方法是什么?我真的不希望// How I need array_diff to compare them.
$files[0] -> $data[0][0]
$files[1] -> $data[1][0] // Y is constantly position 0, while both X's remain at the same position.
成为二维数组,我只需要将Y坐标值设置为x坐标值并摆脱数组的额外维度。
答案 0 :(得分:1)
我不确定这是不是你的意思,但你可以试试这个。
$diffs = array_diff($files, array_map(function($a){ return $a[0]; }, $data));
另一种方式可能是:
$diffs = array();
foreach ($files as $key => $value) {
if ($data[$key][0] != $value) {
$diff[] = $files[$key]; // if you want to check the value of the files variable
$diff[] = $data[$key][0]; // for the data variable
}
}
我不知道性能上的差异,但后者仅适用于$files[$n] == $data[$n][0]
因此如果我不得不猜测后者的性能会更快。