亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP 添加到在 foreach 中創建的現有數組

PHP 添加到在 foreach 中創建的現有數組

PHP
www說 2023-06-24 18:13:27
我正在從數據庫中選擇值并將它們添加到循環中的數組中foreach,這是有效的。之后,我在第二個查詢中選擇其他值,我想將這些值添加到同一個數組中,如何實現這一點?請注意,我還不擔心代碼的安全性。我的(簡化的)代碼如下;$users_arr = array();// first query$db->setQuery("SELECT id, name, username, email FROM sometable WHERE name = '$name' ");$results = $db->loadObjectList();foreach ($results as $result) {    $userid = $result->id;    $name = $result->name;    $username = $result->username;    $email= $result->email;    $users_arr[] = array(      "id" => $userid,       "name" => $name,       "username" => $username,       "email" => $email);}// second query$db->setQuery("SELECT status AS wb_status FROM anothertable ");$wb = $db->loadObject();$wb_status = $wb->wb_status;// add to original array $users_arr[] = array("wb_status" => $wb_status);echo json_encode($users_arr);exit();這會產生;[  {    "id": "981",    "name": "jo",    "username": "jo123",    "email": "[email protected]"  },  {    "wb_status": "Complete"  }]我需要這種格式;[  {    "id": "981",    "name": "jo",    "username": "jo123",    "email": "[email protected]",    "wb_status": "Complete"  }]
查看完整描述

1 回答

?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

在第一個查詢之前運行第二個查詢并將元素添加到數組中foreach:


// second query becomes first

$db->setQuery("SELECT status AS wb_status FROM anothertable ");

$wb = $db->loadObject();


$wb_status = $wb->wb_status;


$users_arr = array();

// first query becomes second

$db->setQuery("SELECT id, name, username, email FROM sometable WHERE name = '$name' ");

$results = $db->loadObjectList();    


foreach ($results as $result) {

    $userid = $result->id;

    $name = $result->name;

    $username = $result->username;

    $email= $result->email;

    $users_arr[] = array(

      "id" => $userid, 

      "name" => $name, 

      "username" => $username, 

      "email" => $email

      "wb_status" => $wb_status, // Here

    );

}


echo json_encode($users_arr);

exit();

更新:另一種方法是迭代$users_arr并向每個元素插入所需的數據:


// ...

$db->setQuery("SELECT status AS wb_status FROM anothertable ");

$wb = $db->loadObject();


$wb_status = $wb->wb_status;


// I use `&` here so as to pass `$item` as a

// reference to original item in `$users_arr`

foreach ($users_arr as &$item) {

    $item["wb_status"] = $wb_status;

}


echo json_encode($users_arr);

exit();


查看完整回答
反對 回復 2023-06-24
  • 1 回答
  • 0 關注
  • 185 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號