我有一个 mysql SELECT
查询,它返回以下内容:
$getDbVars = "SELECT `var_code` FROM `campaign_variables`";
$name
$videoURL
$leadLogo
$brand
$competitor
我还有一个 CSV,其列与上面相同。当然,CSV 每列包含数百行。
andres,http://somewhere.com/vid1.mp4,http://somewhere.com/logo1.png,brand1,andres-competitor
allan,http://somewhere.com/vid5.mp4,http://somewhere.com/logo5.png,brand5,allan-competitor
alexander,http://somewhere.com/vid7.mp4,http://somewhere.com/logo7.png,alexander-competitor
首先,我需要使用 sql 查询返回的任何内容作为变量名称。
然后,我需要能够循环遍历 CSV,并且每次都为这些变量赋值。例如,在循环的第一次扫描中:
$name = 'andres';
$videoURL = 'http://somewhere.com/vid1.mp4';
$leadLogo = 'http://somewhere.com/logo1.png';
$brand = 'brand1';
$competitor = 'andres-competitor';
对于 CSV 的每一行,依此类推。
如果以上内容没有多大意义,请告诉我。我必须这样做的原因是因为在某些情况下同一查询将返回不同数量的行。因此,就会有不同的“变量名”。好处是 CSV 的列数始终与查询返回的行数相同。
最佳答案
我认为实现这一点的最佳方法是数组:
$keys = array("name", "videoURL", "leadLogo", "brand", "competitor");
$csv = $your_csv_as_array_data;
$data = array();
foreach($csv as $row) {
$temp = array();
for($i = 0; $i < count($keys); $i++) {
$temp[$keys[$i]] = $row[$i];
}
$data[] = $temp;
}
这将为您提供以下数组:
array (
[0] => array(
"name" => "...",
"videoURL" => "...",
"leadLogo" => "...",
"brand" => "...",
"competitor" => "..."
),
[1] => array(
"name" => "...",
"videoURL" => "...",
"leadLogo" => "...",
"brand" => "...",
"competitor" => "..."
),
[2] => array(
"name" => "...",
"videoURL" => "...",
"leadLogo" => "...",
"brand" => "...",
"competitor" => "..."
)
.
.
.
)
关于php - 使用返回的行作为 php 变量名称,并从 CSV 分配值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22201055/