gpt4 book ai didi

php - 关于某些模板的数组排列

转载 作者:行者123 更新时间:2023-11-29 23:19:00 25 4
gpt4 key购买 nike

我有一个模板:在模板的基础上,我想要对作为模板一部分的数组进行排列,并将排列数据的每个元素插入到数据库中实际上模板的值是动态变化的,元素的数量也变化意味着动态

  $temp = ['server', 'test[server]', 'extra'];
$temp1 = ['server', 'test[server]'];
$temp2 = ['server'];

test[server] -:测试依赖于服务器;数据属于模板:

  $server = ['server1','server2','server3'];
$test = ['server1'=>['test1', 'test2'],
'server2' => ['test4', 'test5'],
'server3' => ['test7']];
$extra = ['a','b','c'];

我想要排列如下:

对于模板$temp

     ['server'=>'server1', 'test' => 'test1','extra'=>'a']
['server'=>'server1', 'test' => 'test1','extra'=>'b']
['server'=>'server1', 'test' => 'test1','extra'=>'c']
['server'=>'server1', 'test' => 'test1','extra'=>'a']
['server'=>'server1', 'test' => 'test2','extra'=>'a']
['server'=>'server1', 'test' => 'test2','extra'=>'b']
['server'=>'server1', 'test' => 'test2','extra'=>'c']
['server'=>'server2', 'test' => 'test4','extra'=>'a']
['server'=>'server2', 'test' => 'test4','extra'=>'b']
['server'=>'server2', 'test' => 'test4','extra'=>'c']
['server'=>'server2', 'test' => 'test5','extra'=>'a']
['server'=>'server2', 'test' => 'test5','extra'=>'b']
['server'=>'server2', 'test' => 'test5','extra'=>'c']
['server'=>'server3', 'test' => 'test7','extra'=>'a']
['server'=>'server3', 'test' => 'test7','extra'=>'b']
['server'=>'server3', 'test' => 'test7','extra'=>'c']

对于模板 $temp1:

     ['server'=>'server1', 'test' => 'test1']
['server'=>'server1', 'test' => 'test2']
['server'=>'server2', 'test' => 'test4']
['server'=>'server2', 'test' => 'test5']
['server'=>'server3', 'test' => 'test7']

对于模板 $temp2:

     ['server'=>'server1']
['server'=>'server2']
['server'=>'server3']

在我想插入数据库的每一个排列元素之后: 插入表(服务器、测试、额外)值(每个元素 1 个,并非全部 我有内存问题,因为它有大数组)

最佳答案

那么你需要这样的东西吗?当然,在您的查询中更改表和字段名称。您还可以根据需要访问 $newArray 数组。

$test = array('server1' => array('test1', 'test2'),
'server2' => array('test4', 'test5'),
'server3' => array('test7')
);
$extras = array('a', 'b', 'c');

$newArray = array();
foreach ($test as $server => $testArray) {
foreach ($testArray as $test) {
foreach ($extras as $extra) {
$sql = "INSERT INTO tbl (server, test, extra)"
. " VALUES ('".$server."', '".$test."', '".$extra."')";
echo $sql."<br />";
$db->query($sql);
$newArray[] = array("server" => $server, 'test' => $test, 'extra' => $extra);
}
}
}

输出是:

INSERT INTO tbl (server, test, extra) VALUES ('server1', 'test1', 'a')
INSERT INTO tbl (server, test, extra) VALUES ('server1', 'test1', 'b')
INSERT INTO tbl (server, test, extra) VALUES ('server1', 'test1', 'c')
INSERT INTO tbl (server, test, extra) VALUES ('server1', 'test2', 'a')
INSERT INTO tbl (server, test, extra) VALUES ('server1', 'test2', 'b')
INSERT INTO tbl (server, test, extra) VALUES ('server1', 'test2', 'c')
INSERT INTO tbl (server, test, extra) VALUES ('server2', 'test4', 'a')
INSERT INTO tbl (server, test, extra) VALUES ('server2', 'test4', 'b')
INSERT INTO tbl (server, test, extra) VALUES ('server2', 'test4', 'c')
INSERT INTO tbl (server, test, extra) VALUES ('server2', 'test5', 'a')
INSERT INTO tbl (server, test, extra) VALUES ('server2', 'test5', 'b')
INSERT INTO tbl (server, test, extra) VALUES ('server2', 'test5', 'c')
INSERT INTO tbl (server, test, extra) VALUES ('server3', 'test7', 'a')
INSERT INTO tbl (server, test, extra) VALUES ('server3', 'test7', 'b')
INSERT INTO tbl (server, test, extra) VALUES ('server3', 'test7', 'c')

关于php - 关于某些模板的数组排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27504549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com