2012-11-25 5 views
0

Je voudrais remplacer quelques clés, mon tableau est:PHP Remplacer les clés du tableau multidimensionnel

Array 
(
    [0] => Array 
     (
      [0] => test1 
      [1] => test2 
      [2] => test3 
      [3] => test4 
      [4] => test5 
      [5] => test6 
     ) 

    [1] => Array 
     (
      [0] => test7 
      [1] => test8 
      [2] => test9 
      [3] => test10 
      [4] => test11 
      [5] => test12 
     ) 

) 

Mon souhait:

Array 
(
    [45] => Array 
     (
      [0] => test1 
      [1] => test2 
      [2] => test3 
      [3] => test4 
      [4] => test5 
      [5] => test6 
     ) 

    [51] => Array 
     (
      [0] => test7 
      [1] => test8 
      [2] => test9 
      [3] => test10 
      [4] => test11 
      [5] => test12 
     ) 

) 

45 et 51 sont des exemples.

Comment puis-je faire cela? J'ai essayé array_flip() puis array_search() mais PHP dit: "Ne peut retourner que les valeurs STRING et INTEGER!"

Merci quand même. Regards

+4

'$ arr [45] = $ arr [0]; unset ($ arr [0]); '? –

Répondre

1
$old_array = array(
    0 => array(0=>'test1',1=>'test2',2=>'test3',3=>'test4',4=>'test5',5=>'test6'), 
    1 => array(0=>'test1',1=>'test2',2=>'test3',3=>'test4',4=>'test5',5=>'test6') 
); 
$new_array = array(
    45=>$old_array[0], 
    51=>$old_array[1] 
); 
var_dump($new_array); 
+0

+1 pour plus de simplicité, si c'est ce qui est nécessaire. –

1

Une clé dans un tableau peut être modifiée en définissant la nouvelle clé à la valeur de l'ancienne clé, puis en désactivant l'ancienne clé.

$myArray = array(
    "0" => array("0" => "test1", "1" => "test2"), 
    "1" => array("0" => "test3", "1" => "test4")); 

echo "original array:\n"; 
var_dump($myArray); 

// modify keys 
$myArray["45"] = $myArray["0"]; 
unset($myArray["0"]); 
$myArray["51"] = $myArray["1"]; 
unset($myArray["1"]); 

echo "modified array:\n"; 
var_dump($myArray); 

génère:

original array: 
array(2) { 
    [0]=> 
    array(2) { 
    [0]=> 
    string(5) "test1" 
    [1]=> 
    string(5) "test2" 
    } 
    [1]=> 
    array(2) { 
    [0]=> 
    string(5) "test3" 
    [1]=> 
    string(5) "test4" 
    } 
} 

modified array: 
array(2) { 
    [45]=> 
    array(2) { 
    [0]=> 
    string(5) "test1" 
    [1]=> 
    string(5) "test2" 
    } 
    [51]=> 
    array(2) { 
    [0]=> 
    string(5) "test3" 
    [1]=> 
    string(5) "test4" 
    } 
} 
0
$keys = array('45','51'); 
$count = 6 ; 
$i = 0; 
foreach($keys as $key){ 
    for($l = 0;$l<$count;$l++){ 
     $last[$key][$l] = 'test'.$l+$i+1 ; 
    } 
    $i += $count; 
} 
print_r($last); 

set $ count à un certain nombre de tableaux que vous voulez.

Questions connexes