簡體   English   中英

如何在PHP中關聯兩個數組

[英]How to relate two arrays in PHP

我有兩個像AB這樣數組。


A=[1,2,3,4] , B=[10,20,30,40]

我想以這樣的方式執行mysql更新查詢。


$abc1=mysql_query("update table set corr='1' WHERE id=10");
$abc1=mysql_query("update table set corr='2' WHERE id=20");
$abc1=mysql_query("update table set corr='3' WHERE id=30");
$abc1=mysql_query("update table set corr='4' WHERE id=40");

所有這些查詢一次執行。

只需循環em並使用第二個數組的索引

$as=[1,2,3,4] , $bs=[10,20,30,40];
foreach ($as as $key=>$val) {
    $abc1=mysql_query("update table set corr='".$val."' WHERE id=".$bs[$key]);
}

注意:你不應該使用mysql而是使用mysqli

注意:總是逃避

使用array_combine() ,您可以創建一個新數組,將一個數組指定為鍵,另一個數組指定為新數組中的值。 然后,只需循環生成的數組,然后執行查詢。 由於現在有一個數組,因此使用foreach循環並使用鍵(在本例中為$a所有值)和值(在本例中為$b所有值)作為您設置的值。

這假設兩個數組中的條目數始終相同。 如果它們的大小不同,則array_combine()將返回false - 您可以在執行查詢之前將其用作檢查。

$a = [1, 2, 3, 4];
$b = [10, 20, 30, 40];
$result = array_combine($a, $b);

foreach ($result as $k=>$v) {
    mysql_query("UPDATE table SET corr='$k' WHERE id = '$v'");
}

話雖這么說,這個查詢很容易受到SQL注入的攻擊,你應該升級到一個更新的API,它支持帶占位符的參數化查詢( mysqli_*或PDO)。 mysql_* API在PHP 5.6中已棄用,並在PHP7中完全刪除。

$a=[1,2,3,4];$b=[10,20,30,40];
$res=array_combine($a, $b );
foreach ($res as $key => $value) {
    $abc1=mysql_query("update table set corr='".$key."' WHERE id=".$value);
}

暫無
暫無

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

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