繁体   English   中英

如何使用 while 循环以编程方式创建多维数组

[英]How to programmatically create a multidimensional array using a while loop

我正在尝试使用 PHP 读取 CSV 文件并根据特定行的匹配构建 arrays 。 CSV 文件内容如下所示:

id, name, qty, price
1,Jeff,2,59,
2,Tom,3,36,
3,Lenny,2,25,
4,Tom,5,69,
5,Jeff,3,19,
6,Tom,2,75,

我正在使用“while”循环来读取 CSV 文件:

while (($row = fgetcsv($h, 10000, ",")) !== FALSE) {

这个想法是:如果在阅读 CSV 文件时,发现与 $row[1] 类似的匹配项......

if($row[1] == 'Tom') {

...当“while 循环”完成时,将创建一个如下所示的数组:

array(
'item_1' => array('id' => 2, 'name' => 'Tom', 'qty' => 3, 'price' => 36),
'item_2' => array('id' => 4, 'name' => 'Tom', 'qty' => 5, 'price' => 69),
'item_3' => array('id' => 6, 'name' => 'Tom', 'qty' => 2, 'price' => 75)
);

(第一个元素的“项目编号”需要以“item_1”开头,并在添加新元素时增加 1)。

如果这是可能的,需要使用什么逻辑?

只需将一个元素分配给结果数组。

$result = [];
$index = 1;
$cols = fgetcsv($h, ","); // get header row
while (($row = fgetcsv($h, 10000, ",")) !== FALSE) {
    if ($row[1] == 'Tom') {
        $result['item_' . $index++] = array_combine($cols, $row);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM