猿问

使用 for 或 foreach 循环完成的关联数组创建 WordPress 更新查询

我想通过循环创建一个关联数组以将其添加到更新中。我遇到的问题是,我不知道如何遍历两个数组的每个元素来创建关联数组以放入更新查询中。


您可以在这里看到我将数组放入更新查询中的另一个数组中,但这是错误的。


我有以下例子:


$table = 'name';

$data = [$_POST['eleicons'], $_POST['elepro'], $_POST['elefont'], $_POST['eleanimations']];

$names = ['eleicons', 'elepro', 'elefont', 'eleanimations'];

$counter = 0;

update($table,

array(

foreach($name as $one => $dat){

$one => $dat[$counter],

$counter++;

}),

array('id' => 0));

正如我所说,该数组是关联的。更新函数应该如下所示:


update($table,

array(

$name[0] => $data[0],

$name[1] => $data[1],

$name[2] => $data[2],

$name[3] => $data[3],

),

array('id' => 0));

但我想这样做:


update($table,

$array_associative,

array('id' => 0));


呼如林
浏览 99回答 1
1回答

Qyouu

$names您可以从您的和 中创建一个关联数组,$data如下所示:$count = sizeof($names);&nbsp; &nbsp; // Get the number of elements in the arrays// for each element, add the name as the key and the data as the value:for($i=0; $i<$count; $i++)&nbsp; &nbsp; $associative_array[$names[$i]] = $data[$i];这将创建一个像这样的数组:Array(&nbsp; &nbsp; [eleicons] => icons data&nbsp; &nbsp; [elepro] => pro data&nbsp; &nbsp; [elefont] => font data&nbsp; &nbsp; [eleanimations] => animations data)您可以在这里看到输出(当然使用虚拟数据):https ://sandbox.onlinephpfunctions.com/code/68c5f0a92b33625c437e4c5b9ef17c6f9b2ec4bb或者,当您使用 时$_POST,您可以这样创建数组:foreach($names as $key)&nbsp; &nbsp; $associative_array[$key] = $_POST[$key];整个代码将是:$table = 'name';$names = array('eleicons', 'elepro', 'elefont', 'eleanimations');&nbsp; &nbsp;&nbsp;$associative_array = array();foreach($names as $key)&nbsp; &nbsp; $associative_array[$key] = $_POST[$key];update($table,&nbsp; &nbsp; &nbsp; &nbsp;$associative_array,&nbsp; &nbsp; &nbsp; &nbsp;array('id' => 0));重要的提示:您正在代码中使用tableand ,因此如果您要将其添加到数据库中,则应该在将其添加到数据库之前清理所有用户提供的数据,否则您很容易受到 SQL 注入的影响。update
随时随地看视频慕课网APP
我要回答