[英]How to relate two arrays in PHP
我有兩個像A和B這樣的數組。
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.