2015-12-04 65 views
0

我正在寻找一个解决方案来建立从foreach循环的平板阵列数据的关联数组:展望创建关联数组

我有什么是对第一行和头一个CSV/xls文件数据在下一行。

ROW1:头 Row2,3,4,5:数据

阵列看起来:

array(3) { 
      [0]=> 
      array(7) { 
      [0]=> 
      string(3) "country" 
      [1]=> 
      string(7) "state" 
      [2]=> 
      string(3) "city" 
      [3]=> 
      string(5) "name" 
      [4]=> 
      string(4) "address" 
      [5]=> 
      string(6) "gender" 
      [6]=> 
      string(6) "status" 
      } 
      [1]=> 
      array(7) { 
      [0]=> 
      string(12) "Argentina" 
      [1]=> 
      string(12) "Corrientes" 
      [2]=> 
      string(12) "Corrientes" 
      [3]=> 
      string(12) "Jorge" 
      [4]=> 
      string(12) "Avenida Avellaneda 12" 
      [5]=> 
      string(12) "Masculino" 
      [6]=> 
      string(12) "Activo" 
      } 
      [2]=> 
      array(7) { 
      [0]=> 
      string(12) "Argentina" 
      [1]=> 
      string(12) "Chaco" 
      [2]=> 
      string(12) "Resistencia" 
      [3]=> 
      string(12) "Mariano" 
      [4]=> 
      string(12) "Avenida Peron 12" 
      [5]=> 
      string(12) "Masculino" 
      [6]=> 
      string(12) "Activo" 
      } 
     } 

结果我需要得到在端部是:

array(2) { 
      [0]=> 
      array(7) { 
      ['country']=> 
      string(12) "Argentina" 
      ['state']=> 
      string(12) "Corrientes" 
      ['city']=> 
      string(12) "Corrientes" 
      ['name']=> 
      string(12) "Jorge" 
      ['address']=> 
      string(12) "Avenida Avellaneda 12" 
      ['gender']=> 
      string(12) "Masculino" 
      ['status']=> 
      string(12) "Activo" 
      } 
      [1]=> 
      array(7) { 
      ['country']=> 
      string(12) "Argentina" 
      ['state']=> 
      string(12) "Chaco" 
      ['city']=> 
      string(12) "Resistencia" 
      ['name']=> 
      string(12) "Mariano" 
      ['address']=> 
      string(12) "Avenida Peron 12" 
      ['gender']=> 
      string(12) "Masculino" 
      ['status']=> 
      string(12) "Activo" 
      } 
     } 
+0

你尝试过什么? – Burki

回答

1
$array = $your_flat_array; 

for ($i = 1; $i < count($array); $i++) { 

    $new_array[$i-1] = []; 

    foreach ($array[$i] as $key => $value) { 

     $new_array[$i-1][$array[0][$key]] = $value; 
    } 
} 

print_r($new_array); 
0

您只需从阵列中删除第一项(标题行):

array_splice($yourArray, 0, 1); 
1

从平板阵列

你已经有一个多维数组创建多维数组,因为你有一个数组的数组。

在这个特定情况下你可以做的是使用array_splice()array_combine()的组合。

试试这个:

$oldArray = array(
    array("country", "state", "city", "name"), 
    array("Argentina", "Corrientes", "Corrientes", "Jorge"), 
    array("Argentina", "Chaco", "Resistencia", "Mariano") 
); 

$newArray = array_splice($oldArray, 1); 

foreach($newArray as $index => $array) { 
    $newArray[$index] = array_combine($oldArray[0], $array); 
} 

echo "<pre>"; 
var_dump($newArray); 

OUTPUT:

array(2) { 
    [0]=> 
    array(4) { 
    ["country"]=> 
    string(9) "Argentina" 
    ["state"]=> 
    string(10) "Corrientes" 
    ["city"]=> 
    string(10) "Corrientes" 
    ["name"]=> 
    string(5) "Jorge" 
    } 
    [1]=> 
    array(4) { 
    ["country"]=> 
    string(9) "Argentina" 
    ["state"]=> 
    string(5) "Chaco" 
    ["city"]=> 
    string(11) "Resistencia" 
    ["name"]=> 
    string(7) "Mariano" 
    } 
}