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

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

我正在做一個 preg_split 但只獲得數組的第二個值的值 - PHP

我正在做一個 preg_split 但只獲得數組的第二個值的值 - PHP

PHP
楊魅力 2022-10-14 15:07:16
有了這段代碼,我試圖在“//”中拆分一個字符串,但它只給了我在 $splits[1] 上的值,而在 $splits[0] 上什么也沒給我。while($row = $result->fetch_assoc()) {        $amigos[] = $row["Id2"]."//".$row["ID"];    }    foreach ($amigos as $i => $value) {        $splits = preg_split("//", $value);        $IDAmizade = $splits[0];        $IDAmigo = $splits[1];        $sql = "SELECT `Nome`,`Agrupamento` FROM `Users` WHERE `ID`='$IDAmigo'";        $result = $conn->query($sql);        $row = $result->fetch_assoc();        echo($row["Nome"] . "+" . $row["Agrupamento"] . "+". $IDAmizade . "/");    }是的 $_row["Id2"] 正在返回一個我已經確認的數字。我要拆分的字符串就像:“1//3”,拆分后它給了我 splits[0] 什么都沒有, splits[1] 是 3我究竟做錯了什么?
查看完整描述

3 回答

?
尚方寶劍之說

TA貢獻1788條經驗 獲得超4個贊

0 索引為空的原因是因為在這部分中使用preg_splitpreg_split("//",時,第一個參數是/用作分隔符的正則表達式,因此您將字符串拆分為空字符串。


$pattern = "//";

$string = "1//3";

print_r(preg_split($pattern, $string));

輸出


Array

(

    [0] => 

    [1] => 1

    [2] => /

    [3] => /

    [4] => 3

    [5] => 

)

如果您想使用 preg_split with/作為分隔符并拆分,//則必須轉義正斜杠。


$pattern = "/\/\//";

如果您使用另一個分隔符,例如~模式看起來像


$pattern = "~//~";

正如已經指出的,您可以使用explode代替


$string = "1//3";

print_r(explode("//", $string));

輸出


Array

(

    [0] => 1

    [1] => 3

)


查看完整回答
反對 回復 2022-10-14
?
茅侃侃

TA貢獻1842條經驗 獲得超21個贊

您需要更改 preg_split 模式。您目前所做的會將字符串拆分為其組成字符。

所以

$splits = preg_split("//", $value);

應該:

$splits = preg_split("[//]", $value);

在此處查看有關 preg_split的更多信息,并在此處查看有關正則表達式的更多信息。

或者,您可以使用explode,它將一個字符串拆分為另一個字符串。

$splits = explode("//", $value);


查看完整回答
反對 回復 2022-10-14
?
catspeake

TA貢獻1111條經驗 獲得超0個贊

正如評論中所說,為什么你有 2 個循環?一個就足夠了,您不需要拆分字符串:


while($row = $result->fetch_assoc()) {

    $sql = "SELECT `Nome`,`Agrupamento` FROM `Users` WHERE `ID`='" . $row["ID"] . "'";

    $result2 = $conn->query($sql);

    $row2 = $result2->fetch_assoc();

    echo($row2["Nome"] . "+" . $row2["Agrupamento"] . "+". $row["Id2"] . "/");

}

此外,您最好使用 JOIN 而不是在循環中執行第二個 SELECT 。我不能說更多,因為我們不知道數據庫的架構以及數據庫是什么。


查看完整回答
反對 回復 2022-10-14
  • 3 回答
  • 0 關注
  • 133 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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