php将excel数据转换为3d数组(php convert excel data into 3d array)

我有一个excel文件,其数据是一个3d数组。

我正在使用PHPExcel Object将数据返回到3d数组中。 但我只能返回一个二维数组。

$objPHPExcel = PHPExcel_IOFactory::load($file);

$cell_collection = $objPHPExcel->getActiveSheet()->getCellCollection();

foreach ($cell_collection as $cell) {

$column = $objPHPExcel->getActiveSheet()

->getCell($cell)

->getColumn();

$row = $objPHPExcel->getActiveSheet()

->getCell($cell)

->getRow();

$data_value = $objPHPExcel->getActiveSheet()

->getCell($cell)

->getValue();

if ($row == 1) {

$header[$row][$column] = $data_value;

} else {

$arr_data[$row][$column] = $data_value;

}

}

如何返回如下结果数组:

$res = array(

[2]=>array(

[A] => A,//column A

[B] =>array([1]=>'red',[2]=>'pink',[3]=>'purple')

),

[3]=>array(

[A] => B,//column B

[B] =>array([1]=>'white',[2]=>'blue',[3]=>'black')

),

);

任何人都知道如何修改我的代码以返回预期的结果? 任何答案将不胜感激!

I have an excel file whose data is a 3d array.

I am using PHPExcel Object to return the data into 3d array. But I can only return a 2d array.

$objPHPExcel = PHPExcel_IOFactory::load($file);

$cell_collection = $objPHPExcel->getActiveSheet()->getCellCollection();

foreach ($cell_collection as $cell) {

$column = $objPHPExcel->getActiveSheet()

->getCell($cell)

->getColumn();

$row = $objPHPExcel->getActiveSheet()

->getCell($cell)

->getRow();

$data_value = $objPHPExcel->getActiveSheet()

->getCell($cell)

->getValue();

if ($row == 1) {

$header[$row][$column] = $data_value;

} else {

$arr_data[$row][$column] = $data_value;

}

}

How can I return a result array like this:

$res = array(

[2]=>array(

[A] => A,//column A

[B] =>array([1]=>'red',[2]=>'pink',[3]=>'purple')

),

[3]=>array(

[A] => B,//column B

[B] =>array([1]=>'white',[2]=>'blue',[3]=>'black')

),

);

Anyone knows how I could modify my code to return the expected result? Any answer would be appreciated!

原文:https://stackoverflow.com/questions/46231887

更新时间:2020-01-07 09:46

最满意答案

我不是一个PHP程序员,这个代码没有遵守。 在这里,我添加了我的代码来生成您期望的数组。 它可以帮助您解决问题。 我认为$ column是一个像A,B这样的列值.....

$i = 1;

$i_str = "";

$res = array();

foreach ($cell_collection as $cell) {

$column = $objPHPExcel->getActiveSheet()->getCell($cell)->getColumn();

$row = $objPHPExcel->getActiveSheet()->getCell($cell)->getRow();

$data_value = $objPHPExcel->getActiveSheet()->getCell($cell)->getValue();

if ($row == 1) {

$header[$row][$column] = $data_value;

} else {

if($column == 'A' && $data_value != ""){

$i++;

$i_str = (string) $i;

$res[$i_str]['A'] = $data_value;

$res[$i_str]['B'] = array();

}

else if($column == 'B'){

$len = (string) (count($res[$i_str]['B']) + 1);

$res[$i_str]['B'][$len] = $data_value;

}

}

}

print_r($res) // here you will get your expected array

I am not a php programmer and this code not complied. Here I have added my code to generate your expected array. It can help you to solve your problem. I think $column is a column value like A,B.....

$i = 1;

$i_str = "";

$res = array();

foreach ($cell_collection as $cell) {

$column = $objPHPExcel->getActiveSheet()->getCell($cell)->getColumn();

$row = $objPHPExcel->getActiveSheet()->getCell($cell)->getRow();

$data_value = $objPHPExcel->getActiveSheet()->getCell($cell)->getValue();

if ($row == 1) {

$header[$row][$column] = $data_value;

} else {

if($column == 'A' && $data_value != ""){

$i++;

$i_str = (string) $i;

$res[$i_str]['A'] = $data_value;

$res[$i_str]['B'] = array();

}

else if($column == 'B'){

$len = (string) (count($res[$i_str]['B']) + 1);

$res[$i_str]['B'][$len] = $data_value;

}

}

}

print_r($res) // here you will get your expected array

2017-09-15

相关问答

由于所有Ct的长度都不相同,因此除了重建新块之外别无选择。 但是使用data[data['ct'] == ct]可能是O(n²)所以这是一个糟糕的方法。 这是使用Panel的解决方案。 cumcount重新编号每个Ct行: t=5

CFt=randint(0,t,(40*t,6)).astype(float) # 2D data

df= pd.DataFrame(CFt)

df2=df.set_index([df[0],df.groupby(0).cumcount()]).sort_index()

...

这不是关于如何创建和填充这些值的3D数组的完整讨论,而只是指出您所呈现的代码中的错误位置,这只是创建一行。 我怀疑你的错误出现在Global或Dim MonthArray语句中。 在VBA中,数组没有“命名”参数。 如果这是问题,您可以尝试以下方法: Global MonthArray(0 to 2) as Variant

然后,在你的代码中: MonthArray(0) = (ActiveSheet.Cells(i + 1, 9).value)

MonthArray(1) = (ActiveS

...

如果您使用的是Windows,则可以使用Brekel的工具 (查看此工作流程教程 ) 如果您可以编写一些代码,也可以尝试这种方法 。 If you're on Windows you can use Brekel's tools (have a look at this workflow tutorial) If you can write a bit of code, you can also try this approach.

我不是一个PHP程序员,这个代码没有遵守。 在这里,我添加了我的代码来生成您期望的数组。 它可以帮助您解决问题。 我认为$ column是一个像A,B这样的列值..... $i = 1;

$i_str = "";

$res = array();

foreach ($cell_collection as $cell) {

$column = $objPHPExcel->getActiveSheet()->getCell($cell)->getColumn();

...

没有一种方法可以转换成一个mysql对象而无需写入tmp表并将其读回。以下将处理sql语句或数组转换,然后根据问题无需转换。 $all_rows = $notify->notification_sql(); // This either returns an SQL statement ready to run OR a set of rows in an array

if (!is_array($all_rows)) { // If it's not an array, run the SQL

...

pixelspace = reader.GetPixelSpacing()

spacing = image.GetSpacing()

vtk_data = image.GetPointData().GetScalars()

numpy_data = numpy_support.vtk_to_numpy(vtk_data)

numpy_data = numpy_data.reshape(dims[0], dims[1], dims[2])

numpy_d

...

尝试将三个列表作为元组传递: A = numpy.array((X, Y, Z), dtype=float)

在numpy.array文档中, numpy.array的签名是 numpy.array(object,dtype = None,copy = True,order = None,subok = False,ndmin = 0,maskna = None,ownmaskna = False) 即单个参数object是变成ndarray的东西,每个其他参数必须是一个关键字参数(因此你得到的

...

如果这是一个数字矩阵,那么它应该只需要42000*784 *10 == 329280000字节。 如果它是一个字符向量,它可能会更大,具体取决于基础值中唯一项的数量。 我确实尝试使用“[r]矩阵重新维度”上的搜索找到重复但没有成功,尽管我确实找到了一个关于用dim

...

这适用于您的示例,我希望它对您来说足够通用: gb

identical(ga, gb)

# [1] TRUE

I also found this way using the package abind: abind( split(gdf, gdf$X1), along=3)

In [54]: arr = np.array([[[ 1., 5., 4.],

[ 1., 5., 4.],

[ 1., 2., 4.]],

[[ 3., 6., 4.],

[ 6., 6., 4.],

[ 6., 6., 4

...

php excel转数组,php将excel数据转换为3d数组(php convert excel data into 3d array)相关推荐

  1. Java中如何将以byte数组给出的数据转换为double数组形式

    1 致谢 感谢陈玮学长的代码  由于学习了他的代码 我才最终得出了正确的结论 2 问题描述 今天编程的时候遇到1个问题 需要从一个二进制文件中读取double[]的数据 我们使用的编程语言是Java语 ...

  2. Intel Realsense D435 python (Python Wrapper)example00: NumPy Integration 将深度帧数据转换为 Numpy 数组进行处理

    NumPy Integration: Librealsense frames support the buffer protocol. A numpy array can be constructed ...

  3. 取原始数组中的指定数据push新数组

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>取原始 ...

  4. python 创建空的numpy数组_真假美猴王-Numpy数据与Python数组的区别与联系

    Numpy,是python中的一个矩阵计算包,功能类似matlab的矩阵计算.Numpy的诞生弥补了下面提到的两项的不足,numpy提供了两种基本的对象:ndarray(N-dimensional a ...

  5. java数组-如何在一堆数据中使用数组!

    数组 1.类型一致的一组数据,其实相当于集合概念. 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成.其中,每一个数据称作一个数组元素(item),每个数组元素可以通过一个下标/索引来 ...

  6. js数组查找最接近_js查找数组所有符合条件数据 js替换数组中的某个元素

    thinkphp一大堆数据的数组怎么做为条件去查询数据库? 在后台代码中将数组assign出去,然后在模板的js代码中就可以通过{$array}调用啦. 如果我们在Action中赋值了一个name模板 ...

  7. java字符串转换成字节数组_将Java字符串转换为字节数组

    我有一个要加密的字节数组,然后转换为字符串,以便可以传输. 当我收到字符串时,我必须将字符串转换回字节数组,以便可以对其进行解密. 我检查了接收到的字符串是否与发送的字符串(包括长度)匹配,但是当我使 ...

  8. c#将字符串转换为数组,在C#中将字符串转换为字节数组

    先决条件:如何在C#中声明和使用byte []? C#中的字符串到字节数组的转换 在C#中,可以使用Encoding将字符串转换为字节数组.方法,它接受字符串作为参数并返回字节数组.ASCII.Get ...

  9. js mysql json字符串转数组中_php数据库数据转换为js中的json对象

    / 1.在company数据user表中取出10条数据,保存为数组 2.在将数组转化为json格式,传递给js 3.用json解析器将传递过来的json字符串转化为json对象, 4.用documen ...

  10. java怎么把数据传入数组_怎么把数据放入数组中

    1.如何将数据库中所有数据存入数组 放到数组我不知道为什么这么做,你数据库的类型都是一样吗?要是整型和字符串你可以放一个数组里? 你可以用结果集取出来放到list集合里 反正放到一个容器里就可以了,最 ...

最新文章

  1. git stash和git stash pop
  2. 多生产者多消费者问题
  3. php算出文件相对路径,php计算两个文件相对路径的方法
  4. 既可输入又可选择的组件
  5. 数组中子数组求最大和
  6. 一个奇葩的网络问题,把技术砖家搞蒙了
  7. wxpython textctrl_wxPython TextCtrl类
  8. 06-08 Jenkins 自动化测试持续集成
  9. 几种经典的hash算法
  10. net core 模型绑定与之前版本的不同-FromBody 必须对应Json格式
  11. js base64图片太大_手把手教你常用JS方法封装(一) [ 大杂烩 ]
  12. cad灯具图标_CAD图纸灯具图例
  13. 【leetcode刷题】[简单]427. 建立四叉树(construct quad tree)-java
  14. kasp技术原理_KASP——基因分型研究者指尖跳跃的珠链
  15. gigabyte计算机主板图解,gigabyte主板bios设置方法
  16. sketchfab中文网_发布Maya模型到Sketchfab插件Sketchfab 5.0.0 For Maya 2014-2017 Win/Mac
  17. html上绘制网格线,【玩转D3.js】--(1)绘制网格线
  18. IMDG产品功能扩展
  19. 只要不上网,pc机就不会感染计算机病毒,计算机考试试题训练
  20. Android自动化测试之MonkeyRunner MonkeyDevice MonkeyImage API使用详解 脚本编写 脚本录制回放

热门文章

  1. 分享淘宝时间服务器同步时间接口api和苏宁时间服务器接口api
  2. 实现VMware虚拟机与主机共享文件夹
  3. 面试软件工程师非专业问题
  4. 你有多久没看动漫了?
  5. TPS7A8300画了一个简单的转接板
  6. MySql超详细总结(珍藏版)
  7. 如何从亚马逊搞来一台免费一年的服务器
  8. world页眉配置第几页共几页不连续
  9. 豆瓣7777人评价的小说,一出版就打满马赛克!
  10. NLP-分类模型-2016-文本分类:FastText【使用CBOW的模型结构;作用:①文本分类、②训练词向量、③词向量模型迁移(直接拿FastText官方已训练好的词向量来使用)】【基于子词训练】