2 回答
TA贡献1860条经验 获得超8个赞
所以,如果你说的是正确的,看起来你已经正确地过滤了你的,以排除那些有不需要的s.干得好!现在,您需要返回还包含分页数据的 JSON。首先,让我们逐步完成您的代码,看看我们是如何在这里结束的:contentid
$response = ….get(url)………
$list = $response->getBody()[‘content’];
就在这里,在前两行中,我们看到您仅从响应正文中选择了 并将其存储在 .content$list
$collection = collect($list);
$filtered = $collection->filter(function ($item) [
return auth()->user->permission($item['id'])
]);
现在,您正在获取它并根据 进行过滤。contentid
Return [‘content’ => $filtered];
最后,您将返回已过滤的 .因此,根本没有删除任何内容 - 您刚刚提取了 ,对其进行了过滤,然后返回了它。您的数据仍然位于您离开的位置。为了获得你想要返回的JSON,你可以调整你拉出和过滤它的方式,但是由于我不知道你正在做什么或为什么以及为什么以及你的过滤器已经在工作,我的直觉是为什么打扰?您可以获取数据并将其与过滤后的数据相结合,然后您将获得所需的确切内容:contentcontentpaginationcontentpaginationcontent
$response = ….get(url)………
$list = $response->getBody()[‘content’];
$pagination = $response->getBody()[‘pagination’];
$collection = collect($list);
$filtered = $collection->filter(function ($item) [
return auth()->user->permission($item['id'])
]);
$alldata = // combine your pagination and filtered objects
Return [‘data’ => $alldata];
请注意,我没有展示如何组合和过滤 - 这是因为我不确定此时您拥有哪种类型的对象。由于您的示例输出不是真正正确的JSON,我不确定是否真的应该是一个列表/数组,或者它是否只是您编写示例的方式,我不确定这些是字符串还是它们是否已被解析,等等。因此,字符串需要将一个附加到另一个,集合将使用 ,依此类推。paginationcontentpaginationcombine()
TA贡献1847条经验 获得超7个赞
您的数组是无效数组!所以我不能尝试,正如我在评论中提到的!
我从阅读您的所有编辑中了解到,这里有一些示例,您如何从php中的数组中删除id 2:
在开始之前:我们可以选择忽略php中的id 2,其中子句像这样
SELECT * FROM table WHERE id NOT IN (2)
OR
SELECT FROM table WHERE id <> 2
您可以在查询时忽略id 2,然后您将有一个没有id 2的数组,让我们与数组连接
如果要删除数组中的特定值,请执行以下操作。
从关联数组中删除
$YourArray = array("id"=>"2","name"=>"somename");
//use array key exist to find if id exist
$test = array_key_exists("id",$YourArray);
if($test == 2){
unset($YourArray['id']); //Here you unset id 2
}
print_r($YourArray); //result of new array
使用多个数组的第二个解决方案:
// PHP program to creating two
// dimensional associative array
$data = array(
// Ankit will act as key
"paginate" => array(
// Subject and marks are
// the key value pair
"id" => 1,
"name" => "Widget #1",
"uri"=> "/products/1"
),
// Ram will act as key
"content" => array(
// Subject and marks are
// the key value pair
"id" => 2,
"name" => "Widget #1",
"uri"=> "/products/1"
),
);
echo "Display Marks: \n";
foreach ($data as $key => $subArr) {
if($subArr['id'] == 2){
unset($subArr['id']);
$data[$key] = $subArr;
}
}
print_r($data);
这是演示:https://3v4l.org/mvZPN
如果要删除数组中的id及其所有元素:已使用array_filter();
$test = array_filter($data, function($data) { return $data['id'] != 2; });
print_r($test);
这是演示:https://3v4l.org/UgNqu
- 2 回答
- 0 关注
- 98 浏览
添加回答
举报