【发布时间】:2019-07-22 13:30:08
【问题描述】:
从控制器,我将 1 个 int 和 2 个数组以及 1 个 var 传递给视图,int 是 $i = 0;,2 个数组是:
dd($myArray);
/*
array:3 [▼
0 => array:3 [▼
0 => 2
1 => 0
2 => "2019-07-21 23:59:59"
]
1 => array:3 [▼
0 => 3
1 => 2
2 => "2019-07-21 23:59:59"
]
2 => array:3 [▼
0 => 1
1 => 1
2 => "2019-07-21 23:59:59"
]
]
*/
还有:
$new_functions = NewFunctions::getAllFunctions();
dd($new_functions);
/*
Collection {#771 ▼
#items: array:12 [▼
0 => {#1047 ▼
+"id": 2
+"name": "demografico"
+"dict_key": "demographic"
+"component": "Demographic"
+"country_id": null
+"created_at": null
+"updated_at": null
}
1 => {#1041 ▶}
2 => {#1040 ▶}
etc..., like more 10 objects.
*/
在视图中,我有这段代码来“组合”这两个数组:
@foreach($new_functions as $key => $item)
@if(in_array($item->id, array_column($myArray, 0)))
<input type="number" id="{!! $item->id !!}" name="function_count[{{$item->id}}]" value="{{ $myArray[$i++][1] }}">
@else
<input type="number" id="{!! $item->id !!}" name="function_count[{{$item->id}}]" value="0">
@endif
@endforeach
我想要做的是:“如果 $item->id (可能是任何 Collection 对象的 id)位于 $myArray 的列 '0' 中,则放入视图的输入, $myArray 的第二个位置的值,如果不存在,则输入 0。”
在我的本地工作中还可以,但在其他环境中则无法正常工作,并且它会将值按不同的顺序排列。
当我的项目的 id 是 $myArray 元素的第一列的值时,我如何在刀片视图中决定将 $myArray 的第 2 个位置的值?
【问题讨论】: