为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
繁星淼淼 2023-06-24 16:13:39
我正在尝试使用 PHP 读取 CSV 文件并根据特定行的匹配构建数组。CSV 文件内容如下所示:id, name, qty, price1,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)。如果这是可能的,需要使用什么逻辑?
查看完整描述

1 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

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


$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);

    }

}


查看完整回答
反对 回复 2023-06-24
  • 1 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信