2016-11-12 4 views
2

Я использую filter метод от Collection класс для удаления некоторых объектов из коллекции. Но после этой операции иногда объекты с ключами, например. 1, 4, 5 влево. Я хотел бы всегда иметь элементы с порядком 0, 1, 2, 3 и т. Д. После filter действия.Laravel Изменение ключей коллекции

Есть ли элегантный способ сделать это без переписывания таблицы на новый?

Спасибо!

+2

Возможно, используйте метод 'values ​​()' Collection для сброса ключей? –

+0

Спасибо! Это работает.BTW, действительно странное имя для метода, который делает такую ​​вещь ... – pavon147

+0

В основном это собственный метод PHP 'array_values ​​()', который, вероятно, объясняет имя –

ответ

4

Вы можете использовать values() метод Laravel Collection, чтобы сделать ключи коллекции в упорядоченном порядке, как это:

// Just for demonstration 
$collection = collect([ 
    10 => ['fruit' => 'Apple', 'price' => 200], 
    11 => ['fruit' => 'Mango', 'price' => 500] 
]); 

$values = $collection->values(); 

$values->all(); 

/* Result would be: 
    [ 
     0 => ['fruit' => 'Apple', 'price' => 200], 
     1 => ['fruit' => 'Mango', 'price' => 500], 
    ] 
*/ 

Надеется, что это помогает!

+0

+1 Спасибо, человек недавно пришел к этой проблеме сбрасываемым массивом при возврате массива сбора различных соединений. –

Смежные вопросы