簡體   English   中英

如何在 Laravel 中循環嵌套數組以根據該數組中鍵值的條件獲取數組

[英]How do I loop a nested array in laravel to get an array based on conditions of key values from that array

我只想獲取選項不為空的數組當我成功取回數組時,我還想將其添加到數據庫中,但最重要的是我想取回數組

array:3 [
  0 => array:5 [
    "id" => 6
    "option" => "True"
    "is_correct" => true
    "label" => "True"
    "opid" => 1
  ]
  1 => array:5 [
    "id" => 7
    "option" => "False"
    "is_correct" => false
    "label" => "False"
    "opid" => 1
  ]
  2 => array:5 [
    "id" => 8
    "option" => null
    "is_correct" => false
    "label" => "Theory"
    "opid" => 5
  ]
]

預期結果

array:3 [
      0 => array:5 [
        "id" => 6
        "option" => "True"
        "is_correct" => true
        "label" => "True"
        "opid" => 1
      ]
      1 => array:5 [
        "id" => 7
        "option" => "False"
        "is_correct" => false
        "label" => "False"
        "opid" => 1
      ]
    ]

我的嘗試

foreach($request->option as $option) {
   if($option["option"] == null){
       dd($option)
    }
}

我只從數組中獲取第一個值.. 看起來我的 if 條件不起作用

我會在評論中謝謝你

假設您的$request->option包含數組,則

$filtered = collect($request->option)->whereNotNull('option')->all()->toArray();

參考: https : //laravel.com/docs/8.x/collections#method-wherenotnull

使用$z變量,它根據您的要求包含數組。

演示: https : //paiza.io/projects/FTTBeEEnb-EHHJbU8FOAYw

$x = [
  [
    "id" => 6,
    "option" => "True",
    "is_correct" => true,
    "label" => "True",
    "opid" => 1
  ],
  [
    "id" => 7,
    "option" => "False",
    "is_correct" => false,
    "label" => "False",
    "opid" => 1
  ],
  [
    "id" => 8,
    "option" => null,
    "is_correct" => false,
    "label" => "Theory",
    "opid" => 5
  ]
];

$z = [];
foreach ($x as $y) {
    if ($y['option'] != null) {
        array_push($z, $y);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM