我正在嘗試使用 PHP 讀取 CSV 文件并根據(jù)特定行的匹配構(gòu)建數(shù)組。CSV 文件內(nèi)容如下所示: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”循環(huán)來讀取 CSV 文件:while (($row = fgetcsv($h, 10000, ",")) !== FALSE) {這個(gè)想法是:如果在閱讀 CSV 文件時(shí),發(fā)現(xiàn)與 $row[1] 匹配,如下所示......if($row[1] == 'Tom') {...當(dāng)“while 循環(huán)”完成時(shí),會(huì)創(chuàng)建一個(gè)如下所示的數(shù)組: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));(第一個(gè)元素的“項(xiàng)目編號”需要以“item_1”開頭,并在添加新元素時(shí)遞增 1)。如果這是可能的,需要使用什么邏輯?
1 回答

蝴蝶不菲
TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
只需將一個(gè)元素分配給結(jié)果數(shù)組即可。
$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);
}
}
- 1 回答
- 0 關(guān)注
- 126 瀏覽
添加回答
舉報(bào)
0/150
提交
取消