function csvToArray($filename = '', $delimiter = ',')
{
if (!file_exists($filename) || !is_readable($filename))
return false;
$header = null;
$data = array();
if (($handle = fopen($filename, 'r')) !== false)
{
while (($row = fgetcsv($handle, 1000, $delimiter)) !== false)
{
$filtered_row = array();
foreach ($row as $field) {
$field = utf8_encode($field);
$field = str_replace('', '', $field);
array_push($filtered_row, $field);
}
if (!$header)
$header = $filtered_row;
else{
print_r($header);
print_r($filtered_row);
echo count($header);
echo count($filtered_row);
// exit;
$data[] = array_combine($header, $filtered_row);
print_r($data); exit;
}
}
fclose($handle);
}
return $data;
}
Приведенные выше print_r и echo генерируют следующий вывод:
Array
(
[0] => care_of
[1] => customer_mobile
[2] => customer_alt_mobile
[3] => customer_name
[4] => customer_district
[5] => customer_upazila
[6] => customer_address
[7] => product_weight_kg
[8] => delivery_time
[9] => cash_collection
)
Array
(
[0] => Moshiur Rahman
[1] => 1673050495
[2] => 1620010950
[3] => Abdus Sattar Bhuiyan
[4] => dhaka
[5] => Rampura
[6] => 3rd floor, House:118/D, Road:05
[7] => 0.5
[8] => 1,2
[9] => 300
)
1010Array
(
[0] => Array
(
[care_of] => Moshiur Rahman
[customer_mobile] => 1673050495
[customer_alt_mobile] => 1620010950
[customer_name] => Abdus Sattar Bhuiyan
[customer_district] => dhaka
[customer_upazila] => Rampura
[customer_address] => 3rd floor, House:118/D, Road:05
[product_weight_kg] => 0.5
[delivery_time] => 1,2
[cash_collection] => 300
)
)
Все идеально. но когда я удаляю exit и print_r, echo, я получаю следующую ошибку: array_combine()
: оба параметра должны иметь равное количество элементов
Странно !. Кажется, я делаю что-то вроде глупости, но через пару часов не могу понять. есть идеи?