2016-06-25 5 views
0

Я использую jquery sortable для упорядочивания слайдов. Я могу вернуть массив идентификаторов в их новом порядке, но я борюсь с тем, как перебирать их в контроллере, чтобы обновить порядок сортировки слайдов.Как получить значения из массива, созданного toArray

массив выглядит следующим образом

[2016-06-25 02:09:53] local.INFO: array (
'order' => 
array (
0 => '2', 
1 => '3', 
2 => '1', 
3 => '4', 
4 => '5', 
5 => '6', 
6 => '7', 
7 => '8', 
8 => '9', 
9 => '10', 
10 => '11', 
11 => '12', 
12 => '13', 
13 => '14', 
14 => '15', 
15 => '16', 
16 => '17', 
17 => '18', 
18 => '19', 
19 => '20', 
20 => '21', 
21 => '22', 
), 
) 

Так что корочки слайдов возвращаются в новом порядке, который является то, что мне нужно, но теперь мне нужно сделать цикл по каждому элементу, или что-то, с этот номер идентификатора и обновить порядок сортировки. Любая помощь в том, как захватить каждое значение в цикле foreach (или что бы это ни было, лучший способ добиться этого может быть), будет с большой благодарностью.

+0

Вы хотите настроить этот массив в контроллере? – nextt1

+0

Я в основном хочу сделать цикл foreach, захватить слайд, который соответствует идентификатору, а затем обновить этот порядок сортировки слайдов с его позицией (ключ + 1) в массиве. Таким образом, в массиве выше первого слайда, который равен 2, переместится в позицию 1 в порядке сортировки. –

ответ

2

В этом случае вам понадобится отдельный массив для хранения вашего результата.

$new_sorted_array = []; 
foreach($sorted_array as $key => $value) 
{ 
$new_sorted_array[$key + 1] = $value; 
} 

Или вы можете использовать только один массив.

$length = count($sorted_array); 
for($i=$length ; $i >= 0 ; $i--) 
{ 
if($i == 0) 
{ 
    $sorted_array[$i] = 0; //some value if needed to specify. 
} 
$sorted_array[$i] = $sorted_array[i-1]; 
} 
+0

Спасибо за ответ, я собираюсь забрать это снова завтра, поэтому я посмотрю, смогу ли я заставить это работать. –

+0

Нет проблем. :) – nextt1

+0

Я был в состоянии заставить его работать, спасибо –

0

var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a-b});

1,5,10,25,40,100 будет результат выполнения кода выше

http://www.w3schools.com/jsref/jsref_sort.asp является отличным источником для сортировки массивов

EDIT: не замечала часть Laravel. В Laravel есть метод, который называется sort, а другой - рекурсивным. В Laravel есть хороший пример кода. laravel.com/docs/5.1/helpers#method-array-sort

+0

То есть в javascript, хотя верно? Мне нужно сделать это в контроллере Laravel, я не уверен, как это применить. –

+0

О, извините. Я думал, вы имеете в виду Javascript. Я сожалею о том, что. Попробуй это. Существует метод в laravel, называемый sort, а другой - рекурсивным. В Laravel есть хороший пример кода. https://laravel.com/docs/5.1/helpers#method-array-sort –

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