3

次の形式の配列があります。

// echo '<pre>' . var_export($this->viewableFields, true) . '</pre>';

array (
  0 => 
  (object) array(
     'formId' => '4',
     'userId' => '7'
  ),
  1 => 
  (object) array(
     'formId' => '4',
     'userId' => '4'
  )
) 

データを修正し、この配列に別のキー/値を追加する必要があります。配列の値を使用しuserId、MySQL データベースにクエリを実行して値を返す必要があります。配列要素ごとにこれを行う必要があります。

したがって、配列要素ごとに次のようなクエリを実行します。

SELECT group from users WHERE userId = [userId in array]

次に、この値を配列に追加します。最終的な配列は次のようになります。

array (
  0 => 
  (object) array(
     'formId' => '4',
     'userId' => '7',
     'group' => 'Registered'
  ),
  1 => 
  (object) array(
     'formId' => '4',
     'userId' => '4',
     'group' => 'Admin'
  )
) 

このように を使用して、配列要素に追加の値を追加できることを知っていarray_walkます。

array_walk($this->viewableFields, function(&$arr) {
    $arr->group = 'Registered';
});

ただし、データベースから値を取得して既存の配列に挿入する方法がわかりません。

どうすればこれを達成できますか?

4

3 に答える 3

1

まず、オブジェクトの配列から userID の値を取得し、配列を $arr と仮定して、データベースでクエリを実行します。

foreach($arr AS $key=>$item) 
{
    $userid=$item["userId"];  // getting userId from object
    $query= $con->query("SELECT group from users WHERE userId='$userid'");
    if($query->num_rows>0)  //checking if query has some result
    {
        $row=$result->fetch_assoc();      //fetching the result
        $arr[$key]->group=$row['group'];  // lastly attaching group key to the arr.
    }
}
于 2020-03-09T11:03:20.313 に答える