Laravel 5合并数组

Laravel 5 Merge an array

我正在尝试将数组与来自随机数字字符串形式的输入合并

在我的表格中我有

<input type="text" name="purchase_order_number" id="purchase_order_number" value="{{ $purchase_order_number }}" />

在控制器中:

public function store(CandidateRequest $request)
{
    $candidateInput = Input::get('candidates');
    $purchaseOrderNumber = Input::get('purchase_order_number');

    foreach ($candidateInput as $candidate)
    {

        $data = array_merge($candidate, [$purchaseOrderNumber]);

        $candidate = Candidate::create($data);

        dd($data);

当我 dd($data) 它得到我的 purchase_order_number 但如下所示但我如何将它分配给 table 中的那一行?

array:6 [▼
  "candidate_number" => "5645"
  "givennames" => "fgfgf"
  "familyname" => "dfgfg"
  "dob" => "01/01/2015"
  "uln" => "45565445"
  0 => "5874587"
]

非常感谢,

试试这个:

$data = [];

foreach ($candidateInput as $candidate)
    array_push($data,$candidate);

 array_merge($data,$purchaseOrderNumber);

 $candidate = Candidate::create($data);

 dd($data);

我在一些帮助下解决了这个问题,但答案是添加:

$data = array_merge($candidate, ['purchase_order_number' => $purchaseOrderNumber]);

感谢所有试图提供帮助的人:)

你可以试试这个,

$data = array_merge($candidate, compact('purchaseOrderNumber'));

另一种方法(我认为最简单的方法)是 union of arrays

$candidate += ['purchase_order_number' => $purchaseOrderNumber]; 

The + operator returns the right-hand array appended to the left-hand array; for keys that exist in both arrays, the elements from the left-hand array will be used, and the matching elements from the right-hand array will be ignored.

 $data = array_merge(['item'=>$item->toArray()], ['chef' => $chef->toArray()]);
$data = $firstArray->merge($secondArray);

试试这个:

use Illuminate\Support\Arr;
$array = Arr::collapse([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);
// [1, 2, 3, 4, 5, 6, 7, 8, 9]

更多:laravel helpers