【问题标题】:How to get values from array created by toArray如何从 toArray 创建的数组中获取值
【发布时间】:2016-10-27 17:15:11
【问题描述】:

我正在使用 jquery sortable 来组织一些幻灯片。我能够以新的顺序返回一个 id 数组,但我正在努力解决如何在控制器中迭代这些以更新幻灯片的排序顺序。

数组长这样

[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',
 ),
) 

所以幻灯片的 ID 以新的顺序返回,这是我需要的,但现在我需要使用该 ID 号执行 foreach 循环或其他操作并更新排序顺序。任何有关如何在 foreach 循环中获取每个值的帮助(或任何实现此目的的最佳方法)将不胜感激。

【问题讨论】:

  • 你想在控制器中自定义排序这个数组吗?
  • 我基本上想做一个 foreach 循环,抓取与 id 匹配的幻灯片,然后用它在数组中的位置(键 + 1)更新幻灯片的排序顺序。因此,在第一张幻灯片上方的数组中,id 为 2,将按排序顺序移动到位置 1。

标签: php jquery arrays laravel-5 jquery-ui-sortable


【解决方案1】:

那么在这种情况下,您将需要一个单独的数组来存储您的结果。

$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];
}

【讨论】:

  • 谢谢你的回答,我明天再去接这个,看看能不能让它工作。
  • 完全没问题。 :)
  • 随时为您提供帮助。 :)
【解决方案2】:

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 是一个很好的数组排序来源

编辑:没有注意到 Laravel 部分。 Laravel 中有一个方法叫做 sort,另一个叫做 sort recursive。 Laravel 对此有一些很好的示例代码。 laravel.com/docs/5.1/helpers#method-array-sort

【讨论】:

  • 那是在 javascript 中,对吧?我需要在 Laravel 控制器中执行此操作,我不知道如何应用它。
  • 哦,对不起。我以为你的意思是Javascript。对此我很抱歉。尝试这个。 laravel 中有一个方法叫做 sort,另一个叫做 sort recursive。 Laravel 对此有一些很好的示例代码。 laravel.com/docs/5.1/helpers#method-array-sort
猜你喜欢
  • 2016-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多