gpt4 book ai didi

php - Laravel 集合更改键问题

转载 作者:行者123 更新时间:2023-12-04 16:07:24 25 4
gpt4 key购买 nike

我发现我的收藏使用了错误的键,所以我开始调试代码。这样做我注意到,如果我将数组中超过 2500 个项目传递给集合,它会丢失它们的键,否则,如果我传递少于 2501 个项目,它会保持正常

限制为 2500 个项目

    public function getProdutos($codigoconcentrador, $codigoempresa, $pluck)
{
$model_produtos = new Produto();

$query = $model_produtos->newQuery();

$query->where('codigoconcentrador', $codigoconcentrador)
->where('codigoempresa', $codigoempresa)
->where('status', 'A');

$query->limit(2500);

dd($query->pluck('nomeproduto', 'codigopro'));

if ($pluck) {
return $query->pluck('nomeproduto', 'codigopro');
} else {
return $query->get();
}
}

结果

Collection {#260 ▼
#items: array:2500 [▼
1 => "CIMENTO VOTORAN CP II Z 32 - 50 KG"
7 => "SOPA 250G - LEGUMES"
8 => "SOPA 250G - CARNE"
9 => "CIMENTO CIPLAN CP II Z 32 - 50 KG"
10 => "ARGAMASSA VOTORAN ACI"
11 => "ARGAMASSA VOTORAN ACII"
13 => "ARGAMASSA COLA BEM ACI "
14 => "ARGAMASSA COLA BEM ACII "
...
...

无限制

    public function getProdutos($codigoconcentrador, $codigoempresa, $pluck)
{
$model_produtos = new Produto();

$query = $model_produtos->newQuery();

$query->where('codigoconcentrador', $codigoconcentrador)
->where('codigoempresa', $codigoempresa)
->where('status', 'A');

// $query->limit(2500);

dd($query->pluck('nomeproduto', 'codigopro'));

if ($pluck) {
return $query->pluck('nomeproduto', 'codigopro');
} else {
return $query->get();
}
}

结果

Collection {#3809 ▼
#items: array:2875 [▼
0 => "CIMENTO VOTORAN CP II Z 32 - 50 KG"
1 => "SOPA 250G - LEGUMES"
2 => "SOPA 250G - CARNE"
3 => "CIMENTO CIPLAN CP II Z 32 - 50 KG"
4 => "ARGAMASSA VOTORAN ACI"
5 => "ARGAMASSA VOTORAN ACII"
6 => "ARGAMASSA COLA BEM ACI "
7 => "ARGAMASSA COLA BEM ACII "
8 => "REATOR 2 X 40 BIVOLT"
9 => "CHA VERDE SOLUVEL - LIMAO 200G - UND"
10 => "ROLDANA P/ POCO GANCHO 12CM. R.C.A."
...
...

更新

该函数正在接收第二个参数$query->pluck('nomeproduto', 'codigopro'),所以我调试了pluck函数,就在它成为一个集合时它丢失了 key

vendor/laravel/framework/src/Illuminate/Support/Collection.php

public function pluck($value, $key = null)
{
dd(Arr::pluck($this->items, $value, $key)); // First Result
dd(new static(Arr::pluck($this->items, $value, $key))); // Second Result
// return new static(Arr::pluck($this->items, $value, $key));
}

最佳答案

plug 方法搜索具有该名称的列并将其用作每个元素的新键...如果您只想获取每个元素的两列,则可以使用 $collection->only('aa', 'bb').除此之外,出于多种原因,您应该使用分页……2500 多个元素的数组太疯狂了。

关于php - Laravel 集合更改键问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48192799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com