我查看了论坛,发现了很多几乎相同的主题但不是我正在寻找的内容:
我有1个数组:
$filterNames : Array
(
[0] => 11424205969default-img.jpg
[1] => myimage.png
[2] => media/14-15/11235231video1.flv
[3] => likemedia/10-12/233569video2.mp4
)
另一个像:
$files : Array
(
[0] => /mypath/materiales/media/14-15/video1.flv
[1] => /mypath/materiales/likemedia/10-12/video2.mp4
)
我需要获取第一个数组中尚不存在的值数组。但由于价值不相同,我无法使其发挥作用。
类似的东西:
function array_check($files, $keyword) {
$out = array();
foreach($files as $index => $string) {
if (strpos($string, $keyword) !== FALSE) {
foreach ($filterNames as $namesF) {
$out[] = array_check(array($files,'stackoverflow'),$namesF);
}
}
}
}
我的问题与AbraCadaver提出的问题不同,因为数组的值并不完全相同,在本例中,它们都是相同的(数字)
我需要一个只有单个值的输出数组,就像它们在$ files数组中一样,具有精确路径。但是如果在第一个数组中存在另一个路径则不会出现。 我能自己解释一下吗? 谢谢你的帮助 欢呼声
答案 0 :(得分:0)
我不确定这个的预期输出是什么,但这是一个例子。在示例中,'match'数组将是具有以下值的键值数组:
[
'thing-one.jpg'] => 0
]
其中值(0)是找到匹配项的键(属于arr2)。您可以使用键('thing-one.jpg')使用简单的“in_array()”搜索来获取它在arr1中出现的键。
$arr1 = [
[0] => 'folder/other-thing/thing-one.jpg'
[1] => 'folder/other-thing/thing-two.prj'
[2] => 'folder/other-thing/thing-three.png'
];
$arr2 = [
[0] => 'omg/lol/thing-one.jpg',
[1] => 'omg/lol/thing-eight.wtf'
];
function findAllTheThings($arr1, $arr2) {
$match = [];
foreach ($arr1 as $path) {
$sub_strings = explode('/', $path);
foreach ($sub_strings as $piece) {
if (in_array($piece, $arr2)) {
// we have a match in the path
$match[$piece] = in_array($piece, $arr2);
}
}
}
}
答案 1 :(得分:0)
感谢您的时间和回答。
首先,php给我一个错误$ match = [];所以我把array(); 然后我把代码添加一个返回行,但是$ out数组是空的。
function findAllTheThings($arr1, $arr2) {
$match = array();
foreach ($arr1 as $path) {
$sub_strings = explode('/', $path);
foreach ($sub_strings as $piece) {
if (in_array($piece, $arr2)) {
// we have a match in the path
$match[$piece] = in_array($piece, $arr2);
}
}
}
return $match;
}
$out = findAllTheThings($filterNames, $files);
仍在挖掘;) 谢谢你的帮助
编辑: 多谢你们。 我需要一个给出的数组
$files : Array
(
[0] => /mypath/materiales/media/14-15/video1.flv
[1] => /mypath/materiales/likemedia/10-12/video2.mp4
)
实际上我有一个包含这些值的数组,我需要过滤以排除数据库中已有的所有文件。 此数组将在db中插入。但即使DB中已经存在,也不希望有两倍的文件 我自己解释一下吗? 谢谢你的帮助