Как связать два массива в 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");




Все эти запросы выполняются за один раз.

579   4  

4 ответов:

Просто замкните 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) в качестве значений, которые вы устанавливаете.

Это предполагает, что количество записей в обоих массивах всегда одинаково. Если они не одного и того же происхождения size, 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). API mysql_* был устаревшим в PHP 5.6 и полностью удален в PHP7.

Предполагая, что длина обоих массивов одинакова,

<?php
$A=[1,2,3,4];
$B=[10,20,30,40];
for($i=0;$i<sizeof($A);$i++){
mysql_query("update table set corr='".$A[$i]."' WHERE id='".$B[$i]."'");
}
?>
$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);
}

Comments

    Ничего не найдено.