此问题在此处已有答案:
How to convert to array with keys from first row by PHPExcel?(2个答案)
昨天关门了。
我一直很难想象如何从电子表格中提取的数组返回一个特定的数组模式。你可以参考下面的提取数组。
下面是从电子表格中提取的数组
Array
(
[0] => Array
(
[0] => Order Number
[1] => Status
)
[1] => Array
(
[0] => 1111
[1] => Shipped
)
[2] => Array
(
[0] => 2222
[1] => For Veri
)
[3] => Array
(
[0] => 3333
[1] => Delivered
)
[4] => Array
(
[0] => 4444
[1] => Problematic
)
[5] => Array
(
[0] => 5555
[1] => Onhold
)
)
我希望返回的数组如下所示:
Array(
[1111] => Array
{
[Order Number] => 1111
[Status] => Delivered
}
[2222] => Array
{
[Order Number] => 2222
[Status] => Delivered
}
)
想确认array_合并函数是否可以处理这个问题吗?如有任何帮助,我们将不胜感激。
编辑:这个问题已经解决,感谢
Markus AO。不得不对提供的代码片段进行一些调整,并能够获得预期的结果。
//$retrieveArray = extracted arrays from the spreadsheet table.
$index = null;
$keys = array_shift($retrieveArray);
//to declare new set of array
$named = [];
// to loop the remaining array
foreach($retrieveArray as $ln => $vals) {
$key = !is_null($index) ? $vals[$index] : $ln;
$named[$key] = array_combine($keys, $vals);
}
echo "<pre>";
print_r($named);
echo "</pre>";
更新输出:
Array
(
[0] => Array
(
[Order Number] => 1111
[Status] => Shipped
)
[1] => Array
(
[Order Number] => 2222
[Status] => For Veri
)
[2] => Array
(
[Order Number] => 3333
[Status] => Delivered
)
[3] => Array
(
[Order Number] => 4444
[Status] => Problematic
)
[4] => Array
(
[Order Number] => 5555
[Status] => Onhold
)
)
谢谢!
1条答案
按热度按时间tkclm6bt1#
这是导入阵列的电子表格和CSV数据的常见问题:键成为数组的第一个成员。很容易重建成一个关联数组。我们所需要的只是将键从第一行移走,然后将它们与所有剩余的值组合在一起。如下所示: