【问题标题】:Laravel 5 Merge an arrayLaravel 5 合并数组
【发布时间】:2016-02-28 08:23:14
【问题描述】:

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

在我的表单中

<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 时,如下所示,但如何将其分配给表中的该行?

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

非常感谢,

【问题讨论】:

    标签: laravel-5 array-merge


    【解决方案1】:

    我在一些帮助下想通了,但答案是添加:

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

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

    【讨论】:

      【解决方案2】:

      试试这个:

      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

      【讨论】:

      • 嘿!感谢您抽出宝贵时间回答问题!你能写出比你的代码更多的东西并解释它为什么有效吗?
      【解决方案3】:

      你可以试试这个,

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

      【讨论】:

        【解决方案4】:

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

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

        + 运算符返回 right-hand array 附加到 left-hand array;对于两个数组中都存在的键,将使用 left-hand array 中的元素,以及 right-hand array 中的匹配元素em> 将被忽略。

        【讨论】:

          【解决方案5】:
           $data = array_merge(['item'=>$item->toArray()], ['chef' => $chef->toArray()]);
          

          【讨论】:

          • 虽然这可能会解决问题,但最好提供一些关于您在做什么的解释。
          【解决方案6】:
          $data = $firstArray->merge($secondArray);
          

          【讨论】:

            【解决方案7】:

            试试这个:

            $data = [];
            
            foreach ($candidateInput as $candidate)
                array_push($data,$candidate);
            
             array_merge($data,$purchaseOrderNumber);
            
             $candidate = Candidate::create($data);
            
             dd($data);
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2015-10-15
              • 2020-04-09
              • 2017-03-07
              • 2015-07-07
              • 2020-08-02
              • 1970-01-01
              • 2019-02-28
              • 1970-01-01
              相关资源
              最近更新 更多