我从xls文档中提取数据,该文档以数组形式返回。但是,数组键不是数字,而是类似于单元格列的字母数字。所以我有一个像这样的数组:
// Example array:
$array = array(
[0] => array(
"A" => "Name",
"B" => "Surname",
"C" => "",
"D" => "Telephone"
),
[1] => array(
"A" => "Name",
"B" => "Surname",
"C" => "",
"D" => "Telephone"
),
[2] => array(
"A" => "",
"B" => "",
"C" => "",
"D" => ""
)
);
现在返回数组的问题是它根本没有过滤数组,我可能在行中有空行的行和行。
我需要一种方法来完全清理数组,以便删除空行和数字,但这可能会在以后给我一些数组一致性问题。
我正在寻找的是一个可以通过一个alphebitical数字切割数组中的行的函数。所以有效的类似于array_chop($ array“,”C“);然后它会从D开始有效地取消所有剩余行键和值对。
这可能吗?有没有我可以使用的PHP功能?对不起,我无法提供示例代码,但我不知道从哪里开始。该阵列非常庞大,因此我正在寻找一种内存有效的解决方案。
提前谢谢!
答案 0 :(得分:0)
如果您只想复制该列的第一部分,则必须高效:
<?php
$array = array(
0 => array(
"A" => "Name",
"B" => "Surname",
"C" => "",
"D" => "Telephone"
),
1 => array(
"A" => "Name",
"B" => "Surname",
"C" => "",
"D" => "Telephone"
),
2 => array(
"A" => "",
"B" => "",
"C" => "",
"D" => ""
)
);
$last_column = 1;
$n = count($array);
for ($i = 0; $i < $n; ++$i)
{
$copy = array();
$j = 0;
foreach($array[$i] as $key => $value)
{
if ($j <= $last_column)
{
$copy[$key] = $value;
++$j;
}
else
{
$array[$i] = $copy;
break;
}
}
}
var_dump($array);
这只在矩阵中留下姓名和姓氏:
array(3) {
[0]=>
array(2) {
["A"]=>
string(4) "Name"
["B"]=>
string(7) "Surname"
}
[1]=>
array(2) {
["A"]=>
string(4) "Name"
["B"]=>
string(7) "Surname"
}
[2]=>
array(2) {
["A"]=>
string(0) ""
["B"]=>
string(0) ""
}
}