2017-08-15 27 views
1

尝试使用array_values,但它只是暂时的。Laravel,如何永久更改数组密钥?

控制器

foreach($rows as $key => $value) 
{ 
    array_values($value); 
    //dd shows the key changes to [0], [1], [2] and so on 
} 

enter image description here

+1

你是什么意思永久?你想要保存数组吗?如果是这样,您需要将数据存储在数据库中。 – DrRoach

+0

如果我通过它来查看紧凑($行);并在视图中使用它,它将更改为正常 – begineeeerrrr

+0

当前数组中的键是什么?你想让他们设置为什么? – DrRoach

回答

3

你可以像这样做,

$rows = array_map(function($v){return array_values($v);}, $rows); 
+0

哦,很好...漂亮整洁 – begineeeerrrr

+2

'array_map('array_values',$ rows)'也可能工作 – apokryfos

+0

更美丽,好看! – begineeeerrrr

1

像这样的东西应该工作:

$new = []; 
foreach($rows as $key => $value) 
{ 
    array_values($value); 
    $sub = []; 
    foreach ($value as $subKey => $subValue) { 
    $subKey = $key; 
    $sub[$key] = $subValue; 
    } 
    $new[$key] = $sub; 
    //dd shows the key changes to [0], [1], [2] and so on 
} 

然后返回$new而不是$rows

+0

嗯......除此之外还有其他选择吗?或者有这样一个雄辩的方式吗? – begineeeerrrr

+0

不要更改数组键。代码可以变得更清洁,但我现在在工作,所以没有时间。你可以使用上面的作为基础和清理它一下,然后编辑答案也许? – DrRoach

+0

好吧,我会在等待清洁版时首先使用它 – begineeeerrrr

0

如果你试图改变关联数组索引数组,这样做:

$array = array_values($array); 
+0

无需复杂的事情。 – GoogleMac

+0

不会改变任何东西 – begineeeerrrr

+0

@benineeeerrrr它实际上完全是你想要的。看到这里:https://code.sololearn.com/wF6d755yf5gG – GoogleMac

1

由于您使用laravel可以也可以这样做:

$rows = collect($rows)->map(function ($value) { 
    return Arr::accessible($value)?collect($value)->values()->all():$value; 
})->all();