php数组中如何引用变量值,php - 如何将一个数组的值分配给PHP中另一个数组中的变量 - SO中文参考 - www.soinside.com...

编辑:这是从里卡多获得帮助后的可行解决方案。$headers_as_variables = str_replace(TEXT_DELIMITER, ",", $headers);

$headers_as_variables = explode(',', $headers_as_variables); //split string into array seperated by ', '

$i = 0;

foreach($headers_as_variables as $column_header) {

$varName = $headers_as_variables[$i];

$$varName = $data[$i];

$i = $i + 1;

}

我正在尝试开发一个程序,该程序可以使用Windows 10(1909)上的XAMPP从各种供应商处导入数据馈送。

本质上,我试图将数据Feed的第一行转换为变量名,然后为标题行之后的行/记录中的每个变量分配值。

我为一个供应商提供的现有代码有效,但表标题因供应商而异...因此我试图实现自动化。

这是我的工作代码...基于一个供应商。 “ list()”中的变量名称与数据Feed中的标题行相同。即$ mfg = $ data [0](mfg ...我的数据Feed中的第一个字段)list($mfg,$sku,$model,$name,$desc,$img,$weight,$cost,$map,$msrp,$shipping,$zip,$qty,$tags,$length,$height,$width,$pqty,$cat,$catpath,$added,$freq,$lead,$eta,$updated,$url) = $data;

//$mfg = $data[0];$sku = $data[1];$model = $data[2];$name = $data[3];$desc = $data[4];$img = $data[5];$weight = $data[6];$cost = $data[7];$map = $data[8];$msrp = $data[9];$shipping = $data[10];$zip = $data[11];$qty = $data[12];$tags = $data[13];$length = $data[14];$height = $data[15];$width = $data[16];$pqty = $data[17];$cat = $data[18];$catpath = $data[19];$added = $data[20];$freq = $data[21];$lead = $data[22];$eta = $data[23];$updated = $data[24];$url = $data[25];

如果要推挤,我可以为每个供应商制作一个带有行标题的表,然后根据要下载的数据源获取数据。但是我认为使用PHP可能会有一个更简单的解决方案...我只是没有看到它。此外,如果供应商丢弃或添加一列会发生什么...我的代码将被破坏。

这是我尝试过的:echo $headers_as_variables;

$mfg, $sku, $model, $name, $desc, $img, $weight, $cost, $map, $msrp, $shipping, $zip, $qty, $tags, $length, $height, $width, $pqty, $cat, $catpath, $added, $freq, $lead, $eta, $updated, $url

我尝试将其作为数组与我的工作list()函数一起使用;$variable_array = array($mfg,$sku,$model,$name,$desc,$img,$weight,$cost,$map,$msrp,$shipping,$zip,$qty,$tags,$length,$height,$width,$pqty,$cat,$catpath,$added,$freq,$lead,$eta,$updated,$url)

list($variable_array) = $data;

这导致了死亡的白屏。大声笑。

接下来,我将行转换为数组,并将两个数组设置为相等。$headers_as_variables = explode(',', $headers_as_variables);

$var_dump($headers_as_variables);

array(26) { [0]=> string(4) "$mfg" [1]=> string(5) " $sku" [2]=> string(7) " $model" [3]=> string(6) " $name" [4]=> string(6) " $desc" [5]=> string(5) " $img" [6]=> string(8) " $weight" [7]=> string(6) " $cost" [8]=> string(5) " $map" [9]=> string(6) " $msrp" [10]=> string(10) " $shipping" [11]=> string(5) " $zip" [12]=> string(5) " $qty" [13]=> string(6) " $tags" [14]=> string(8) " $length" [15]=> string(8) " $height" [16]=> string(7) " $width" [17]=> string(6) " $pqty" [18]=> string(5) " $cat" [19]=> string(9) " $catpath" [20]=> string(7) " $added" [21]=> string(6) " $freq" [22]=> string(6) " $lead" [23]=> string(5) " $eta" [24]=> string(9) " $updated" [25]=> string(6) " $url " }

var_dump($data);

array(26) { [0]=> string(3) "mfg" [1]=> string(3) "sku" [2]=> string(5) "model" [3]=> string(4) "name" [4]=> string(4) "desc" [5]=> string(3) "img" [6]=> string(6) "weight" [7]=> string(4) "cost" [8]=> string(3) "map" [9]=> string(4) "msrp" [10]=> string(8) "shipping" [11]=> string(3) "zip" [12]=> string(3) "qty" [13]=> string(4) "tags" [14]=> string(6) "length" [15]=> string(6) "height" [16]=> string(5) "width" [17]=> string(4) "pqty" [18]=> string(3) "cat" [19]=> string(7) "catpath" [20]=> string(5) "added" [21]=> string(4) "freq" [22]=> string(4) "lead" [23]=> string(3) "eta" [24]=> string(7) "updated" [25]=> string(3) "url" }

除了在数组中的变量名周围用双引号引起来,它们看上去都应如此。我已经用字符串替换删除了它们,但仍然无法从另一个数组($ data)获取我的字段值来附加它们。

所以,我认为仅通过数字标识符匹配两个数组就可以了,但是没有用。$i = 0;

foreach($headers_as_variables as $column_header) {

//$headers_as_variables[$i] = str_replace("\"", "", $headers_as_variables[$i]); //Removed double-quotes

$headers_as_variables[$i] = $data[$i]; // $mfg = mfg ... one would think?

echo $headers_as_variables[$i] . '='. $data[$i] . '
'; // Output: $mfg = mfg

echo 'MFG - ' . $mfg . '
'; // Result: MFG -

$i++;

}

所以我认为可变变量可以解决问题。$i = 0;

foreach($headers_as_variables as $column_header) {

$a = $headers_as_variables[$i];

$$a = $data[$i];

echo "$a ${$a}" . "
"; // Output: $mfg mfg

echo 'MFG - ' . $mfg . '
'; // Output: MFG -

$i = $i + 1;

}

再尝试一下...组合数组和我们的键/值以获取所需的信息。不幸的是,即使阅读了几天,我还是这个初学者。$a = array($headers_as_variables);

$b = array($data);

$c = array_combine($a, $b);

print_r($c);

//Array ( [Array] => Array ( [0] => mfg [1] => sku [2] => model [3] => name [4] => desc [5] => img [6] => weight [7] => cost [8] => map [9] => msrp [10] => shipping [11] => zip [12] => qty [13] => tags [14] => length [15] => height [16] => width [17] => pqty [18] => cat [19] => catpath [20] => added [21] => freq [22] => lead [23] => eta [24] => updated [25] => url ) )

该数组看起来与var_dump($ data)非常相似(减去所有字符串和文本内容)。现在,我觉得我正在转圈。

编辑:这是在获得里卡多帮助后的可行解决方案。 $ headers_as_variables = str_replace(TEXT_DELIMITER,“,”,$ headers); $ headers_as_variables = explode(',',$ headers_as_variables); // ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值