2017-08-08 1 views
1

J'ai des doutes en php je veux définir un tableau associatif pour lequel j'ai les clés, ainsi que des valeurs. i ont un tableau des en-têtes de $ et un tableau mutidimentional données $ comme suit:Comment définir les clés dans un tableau multidimensionnel en php

$headers=(
    [0] => Testcase Name 
    [1] => Cell Name 
    [2] => Customer 
    [3] => Flops 
    [4] => Title 
    [5] => Status 
    [6] => Mfix CCR(open/close) 
    [7] => Scenerio-Brief Description 
    [8] => Expected Results 
    [9] => CCR Status 
    [10] => CCR No. 
    [11] => Remarks 
    [12] => Testcase Path 
) 

$data=(
    [0] => Array 
     (
      [0] => /a/b/c 
      [1] => 
      [2] => 
      [3] => 
      [4] => 
      [5] => Done 
      [6] => close 
      [7] => 2D Elastic with scanformat=parallel 
      [8] => No miscompares for both scan and logic tests 
      [9] => 
      [10] => 1716280 
      [11] => 
      [12] => 
     ) 

    [1] => Array 
     (
      [0] => /x/y/z 
      [1] => 
      [2] => 
      [3] => 
      [4] => 
      [5] => Done 
      [6] => close 
      [7] => 2D Elastic with scanformat=parallel & explicitshifts 
      [8] => No miscompares for both scan and logic tests 
      [9] => 
      [10] => 1717028 
      [11] => 
      [12] => 
     ) 

    [2] => Array 
     (
      [0] => /a/p/q 
      [1] => 
      [2] => 
      [3] => 
      [4] => 
      [5] => Done 
      [6] => 
      [7] => Error if explicitshifts greater than scan length 
      [8] => No miscompares for both scan and logic tests 
      [9] => 
      [10] => 
      [11] => 
      [12] => 
     ) 

    [3] => Array 
     (
      [0] => /s/m/p 
      [1] => 
      [2] => 
      [3] => 
      [4] => 
      [5] => Done 
      [6] => 
      [7] => 2D Elastic + wide 1 Masking with scanformat=parallel 
      [8] => No miscompares for both scan and logic tests 
      [9] => 
      [10] => 
      [11] => 
      [12] => 
     ) 

) 

Je veux définir les touches numériques [0] .... [12] comme les valeurs du tableau $ headers. Signifie que je veux remplacer [0] .... [12] avec $ header [0] .... $ headers [12].

Veuillez fournir une solution.

Répondre

0
$result = array(); 
foreach($data as $key => $val){ 
    $temp = array(); 
    foreach($val as $k => $v){ 
     $temp[$header[$k]] = $v; 
    } 
    $result[] = $temp; 
} 
+0

Il a travaillé Kashyap. Merci beaucoup! – confused

+0

Vous pouvez accepter la réponse si elle fonctionne pour vous. – Kashyap

2

Utilisation array_combine:

$dataWithKeys = []; 
foreach ($data as $row) { 
    $dataWithKeys[] = array_combine($headers, $row); 
} 
+0

Convenu, array_combine est plus propre moyen d'y parvenir. Thumbs up :) – Kashyap

+0

'array_combine' me frustre, c'est difficile que les tableaux sont de la même taille. Je dis juste. – ArtisticPhoenix

+0

Les tableaux de la question ont la même taille. Si la taille est différente, alors c'est une tâche complètement différente. – Timurib