答案 0 :(得分:3)
你需要这样的功能:
$scope.maxSize = 3;
$scope.totalItems = 7;
$scope.currentPage = 1;
$scope.numPerPage = 2;
$scope.paginate = function (value) {
var begin, end, index;
begin = ($scope.currentPage - 1) * $scope.numPerPage;
end = begin + $scope.numPerPage;
index = $scope.reminderTypes.indexOf(value);
return (begin <= index && index < end);
};
在这种情况下,如果发现数据将返回true,否则返回false。
在这些情况下,您需要迭代数组中的每个值并检查它们。
答案 1 :(得分:0)
另一种解决方案:
$arr = [
[
"company"=>1,
"permissions" => [
10,20,30
]
],
[
"company" => 2,
"permissions" => [
3,41,5
]
]
];
function search($arr, $company_id, $perm_id) {
return array_map(function($item) use ($company_id, $perm_id){
if ($item['company'] == $company_id ) {
if( array_search($perm_id, $item["permissions"]) ) {
return $item;
}
}
return false;
}, $arr);
}
var_dump(search($arr, 2,41));
答案 2 :(得分:0)
这是适合你的功能
function in_array_r($arrayItem , $array){
return preg_match('/"'.$arrayItem.'"/i' , json_encode($arrayName));
}
这就是你怎么称呼它
if(in_array_r($item , $array){
// found!
}
答案 3 :(得分:0)
如果你使用PHP&gt; = 5.5.0,试试这个:
<?php
$array = array(
array(
'company'=>2,
'permission'=>array(45,33,22),
),
array(
'company'=>6,
'permission'=>array(21,20,76),
),
);
function search($array, $company, $permission)
{
$companyValues = array_column($array, 'company');
$permissionValues = array_column($array, 'permission');
$combinedArray = array_combine($companyValues, $permissionValues);
if(isset($combinedArray[$company]) && in_array($permission, $combinedArray[$company]))
return 1;
return 0;
}
echo search($array, 2, 33);
工作演示:CLICK!
答案 4 :(得分:0)
尝试这个简单的单线搜索
<?php
$full_array =array('0'=>array('company'=>'23','permission'=>array('0'=>'30','1'=>'31','2'=>'164')),'1'=>array('company'=>'51','permission'=>array('0'=>'52','1'=>'80')));
$given_company_data='23';
$given_permission_data='31';
$i=1;
foreach($full_array as $row)
{
if($row['company']==$given_company_data && in_array($given_permission_data,$row['permission']))
{
echo "hi".$i;
}
$i++;
}
?>
答案 5 :(得分:0)
这是另一种方法: 我们的想法是创建一个查询数组来告诉searchDeep()函数如何查询数组。
这可以用OOP代码代替丑陋的数组。
在此示例中,我们只搜索一个级别,但应添加递归选项。
var name = 'bob';
var someObject = {
name: 'james',
someProperty: {
name: 'sam',
getName: function() {
return this.name;
}
}
}
var testing = someObject.someProperty.getName;
console.log(testing()); //bob
console.log(testing.call(someObject)); //james
console.log(testing.call(someObject.someProperty)); //sam
console.log('------OR--------')
var testing = someObject.someProperty.getName.bind(someObject);
console.log(testing());
var testing = someObject.someProperty.getName.bind(someObject.someProperty);
console.log(testing());