我尝试创建一个与strstr相同的函数,但是使用char数组而不是字符串,如果第一个数组在第二个数组中则返回1
(编程语言是c)。
我已添加函数声明。int arrInArr(char *a, char *b ,int lenA , int lenB);
答案 0 :(得分:3)
我认为您正在寻找$brandListAll = $this->getBrandModel()->brandList();
$brandListUserRegistered = $this->getBrandUserModel()->getUserBrands($userId);
$result = array_merge($brandListUserRegistered,$brandListAll);
// remove duplicate objects
$result = array_map("unserialize", array_unique(array_map("serialize", $result)));
// sort by id
sort( $result );
功能。手册页摘录:
memmem
说明
memmem()函数定位第一次出现的字节字符串 字节串很少。
免责声明:此函数不是C标准库的成员,但至少存在于BSD和Linux中 - 即使它被声明为破坏,直到glibc 2.1
答案 1 :(得分:0)
以下是arrInArr
的非优化实现。我稍微改变了参数类型。
#include <string.h>
int arrInArr(const char *a, const char *b, size_t len_a, size_t len_b)
{
size_t n;
if (len_a > len_b)
return 0;
for (n = 0; n <= len_b - len_a; n++)
{
if (memcmp(&b[n], a, len_a) == 0)
return 1;
}
return 0;
}