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

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

根據值添加或刪除 PHP 字符串

根據值添加或刪除 PHP 字符串

PHP
縹緲止盈 2023-10-21 16:21:55
我想從以下代碼中添加或刪除 php 字符串/數組:$params = array_merge([$pstatus, $_POST["minimum_price"], $_POST["maximum_price"]],$branddata);如果$branddata字符串為NULL時仍然存在,SQL將顯示錯誤。因此,如果$branddata為 NULL/空,我想$branddata從 中刪除$params。如果$branddata有價值$branddata就應該存在 $params,否則就不應該存在。這是用于 PDO 準備語句的函數。它不適用于空IN()值。我只能做以下事情!$base_sql = "SELECT %s FROM filter WHERE product_status = ?";$query = sprintf($base_sql, "*")." AND price BETWEEN ? AND ?";if(!empty($branddata)){    $query .= "AND brand IN($brand) ";  }     我如何添加或$branddata刪除$params?
查看完整描述

1 回答

?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

您可以使用它array_filter從數組中刪除 null 或空值。



$params = [1, '', null];

print_r($params);


/*

Array

(

[0] => 1

[1] =>

[2] =>

)

*/


$params = array_filter($params);

print_r($params);


/*

Array

(

    [0] => 1

)

*/

不幸的是,它會取出所有空參數,包括零和空字符串。如果您只想刪除 null 值,則可以向該函數添加回調以僅檢查 null 。


$params = array_filter($params, function ($v){return $v !== null;});

編輯


除了你說它可以為空/空之外,在完全不知道里面是什么的情況$branddata下,我必須進行一些猜測。


首先,如果$branddata實際上為空,array_merge會嚇壞了,我會用一個簡單的空合并運算符來修復這個問題$branddata ?? []。


這是一個做了更多事情的示例:


$branddata = ['', null];

$params = array_filter(array_merge(['alpha', 'beta'], $branddata ?? []));

這會輸出一個數組:


Array

(

    [0] => alpha

    [1] => beta

)

編輯


最適合您的字面版本是:


$params = array_filter(array_merge([$pstatus, $_POST["minimum_price"], $_POST["maximum_price"]], $branddata ?? []));



查看完整回答
反對 回復 2023-10-21
  • 1 回答
  • 0 關注
  • 114 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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