我讀了一個 csv 文件并得到了這個數組 $rowsArray( [0] => Array ( [0] => Name [1] => Company [2] => Email [3] => City )[1] => Array ( [0] => Foo [1] => Foo & co [2] => [email protected] [3] => NY )[2] => Array ( [0] => Bar [1] => Bar & co [2] => [email protected] [3] => Las Vegas ))我會嘗試通過僅過濾第一個數組中包含的某些字段來將其轉換為關聯數組。結果應該是這樣Array([0] => Array ( ['Name'] => Foo ['Company'] => Foo & co ['Email] => [email protected] ) [1] => Array ( ['Name'] => Bar ['Company'] => Bar & co ['Email] => [email protected] ))不幸的是,我以各種方式嘗試過,但沒有成功。$name = array_search('Name', $rows[0]);$company = array_search('Company', $rows[0]);$email = array_search('Email', $rows[0]);$rows = unset($rows[0]);$array = array();foreach ( $rows as $r => $row ) { foreach ( $row as $c => $cell ) { if ($c == $name) { $array = array( 'name' => $cell ); } if ($c == $company) { $array = array( 'company' => $cell ); } if ($c == $email) { $array = array( 'email' => $cell ); } }}你能給我一些建議嗎?謝謝
2 回答

白衣染霜花
TA貢獻1796條經驗 獲得超10個贊
你可以試試下面的代碼。它將基于 csv 文件使該動態的標題名稱和值。
$header = array();
foreach($array as $key=>$value){
if($key == 0){
$header = array_values($value);
}else{
$final_result[]= array_combine($header, array_values($value));
}
}
echo "<pre>";
print_r($final_result);

小怪獸愛吃肉
TA貢獻1852條經驗 獲得超1個贊
在閱讀文件時嘗試構建您想要的內容,而不必重新排列您一開始不想要的內容。
// loose the titles line
fgetcsv($file, 1000, ',')
$rows= [];
while ( $line = fgetcsv($file, 1000, ',') !== FALSE) {
$rows[] = ['Name'=> $line[0], 'Company'=> $line[1], 'Email'=> $line[2] ];
}
- 2 回答
- 0 關注
- 193 瀏覽
添加回答
舉報
0/150
提交
取消