Php 将excel数据更改为多维数组
如何将此excel文件转换为以下数组格式Php 将excel数据更改为多维数组,php,arrays,excel,multidimensional-array,Php,Arrays,Excel,Multidimensional Array,如何将此excel文件转换为以下数组格式 Array [Test's Restaurant] => Array ( [Appetizer] => Array ( [Salsa & Chips] => Array ( [Radio] => Array (
Array [Test's Restaurant] => Array
(
[Appetizer] => Array
(
[Salsa & Chips] => Array
(
[Radio] => Array
(
[0] => Coke
[1] => Sprite
[2] => Diet Coke
[3] => Diet Sprite
)
[Checkbox] => Array
(
[0] => Chocolate Cake
[1] => Vanilla Cake
)
)
[Salad] => Array
(
[Radio] => Array
(
[0] => Italian
[2] => French
[3] => Ranch
)
)
)
[Lunch Menu] => Array
(
[Burrito] => Array
(
[Radio] => Array
(
[0] => Roll
[1] => Steak
[3] => Chicken
)
[Checkbox] => Array
(
[0] => Coke
[1] => Sprite
[3] => Diet Coke
)
)
)
)
我已经尝试过的代码 //这将提供phpExcel库导入函数返回的主数组
$mdar = phpexcel_import($path);
arrange_array($mdar[0]);
function arrange_array($mdar){
$mainarr = array();
$arr = array();
$j = count($mdar);
for($a = 0 ; $a <=$j ; $a++ ){
if(!empty($mdar[$a]['Menu Category']))
{
$b = next_point($mdar,$a,$j);
$mainarr[$mdar[$a]['Menu Category']] = arrange_array2($mdar,$a,($b-1));
$arr = $mainarr;
}
}
}
function next_point($mdar,$last,$j){
//echo 'next_point $mdar '.$mdar.'next_point $last '.$last.' next_point $j '.$j .'<br>';
for($a = $last ; $a <=$j ; $a++ ){
if(!empty($mdar[$a]['Menu Category']))
{
$arr[] = $a;
}
}
return $arr[1];
}
function arrange_array2($mdar,$sp,$lp){
$arr = array();
for($a = $sp ; $a <=$lp ; $a++ ){
if(!empty($mdar[$a]['Menu Item']))
{
$b = next_point2($mdar,$a,$lp);
$mainarr[$mdar[$a]['Menu Item']] = arrange_array3($mdar,$a,$b);
$arr = $mainarr;
}
}
return $arr;
}
function next_point2($mdar,$last,$j){
// echo 'next_point2 $mdar '.$mdar.' next_point2 $last '.$last.' next_point2 $j '.$j .'<br>';
for($a = $last ; $a <=$j ; $a++ ){
if(!empty($mdar[$a]['Menu Item'])){
$arr[] = $a;
}
}
echo "next point 2 ";
print_r($arr);
return ($arr[1])?$arr[1]-1:$arr[0];
}
function arrange_array3($mdar,$sp,$lp){
//echo 'next_point2 $mdar '.$mdar.' next_point2 $sp '.$sp.' next_point2 $j '.$lp .'<br>';
$arr = array();
for($a = $sp ; $a <=$lp ; $a++){
if(!empty($mdar[$a]['Menu Item option type']))
{
$b = next_point3($mdar,$a,$lp);
$mainarr[$mdar[$a]['Menu Item option type']] = arrange_array4($mdar,$a,$b);
$arr = $mainarr;
}
}
return $arr;
}
function next_point3($mdar,$last,$j){
// echo 'next_point2 $mdar '.$mdar.' next_point2 $last '.$last.' next_point2 $j '.$j .'<br>';
for($a = $last ; $a <=$j ; $a++ ){
if(!empty($mdar[$a]['Menu Item option type']))
{
$arr[] = $a;
}
}
return ($arr[1])?$arr[1]-1:$arr[0];
}
function arrange_array4($mdar,$sp,$lp){
for($a = $sp ; $a <=$lp ; $a++ ){
if(!empty($mdar[$a]['Menu Option Values']))
{
$arr[] = $mdar[$a]['Menu Option Values'];
}
}
return $arr;
}
$mdar=phpexcel\u导入($path);
排列数组($mdar[0]);
函数排列数组($mdar){
$mainarr=array();
$arr=array();
$j=计数($mdar);
对于($a=0;$a)您尝试过什么吗?使用类似库的方法读取Excel文件,并使用libraries toArray()方法;然后操纵该数组以获得所需的确切结构。