php - PHP在关联数组中转换数组数组
问题描述
我读了一个 csv 文件并得到了这个数组 $rows
Array
(
[0] => Array
(
[0] => Name
[1] => Company
[2] => Email
[3] => City
)
[1] => Array
(
[0] => Foo
[1] => Foo & co
[2] => foo@mail.com
[3] => NY
)
[2] => Array
(
[0] => Bar
[1] => Bar & co
[2] => bar@mail.com
[3] => Las Vegas
)
)
我会尝试通过仅过滤第一个数组中包含的一些字段来将其转换为关联数组。结果应该是这样
Array
(
[0] => Array
(
['Name'] => Foo
['Company'] => Foo & co
['Email] => foo@mail.com
)
[1] => Array
(
['Name'] => Bar
['Company'] => Bar & co
['Email] => bar@mail.com
)
)
不幸的是,我以各种方式尝试过,但没有成功。
$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 ); }
}
}
你能给我一些建议吗?谢谢
解决方案
你可以试试下面的代码。它将根据 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);
推荐阅读
- python-3.x - 在一个 csv 文件中写入数据帧和字符串
- c# - 无法从枚举中获取字符串
- python - 自定义 Matplotlib 子图
- c++ - 为什么 const_casting a heap.top() of priority_queue 有未定义的行为?
- excel - Excel公式从字符串中提取数字和单词组合
- treeview - 在 VB.net 中折叠 Treeview 节点时的问题
- javascript - Discord 添加角色超时
- python - 为什么我在 X 轴上有额外的值,带有条形图?
- javascript - 赛普拉斯无法通过循环选择多选
- arrays - Angular // ng-select 在从数组中提取的文本的文本区域内使用插值