PHP 3 Değerler ile Array 3D Array oluşturun

3 Cevap php

beni tekrar:

Aşağıdaki bir dizi;

$myArray = array('FOO', 'BAR', 'HELLO');

i gerekir:

$myArray['FOO']['BAR']['HELLO'] = 0;

herhangi bir fikir?

3 Cevap

 function onion($a) {
  return $a ? array(array_shift($a) => onion($a)) : 0;
}

$myArray = array('FOO', 'BAR', 'HELLO');
print_r(onion($myArray));

/ / Edit: aslında doc's solution daha iyi, onun / onun kod, biraz geliştirilmiş

  $new = 0;
  foreach (array_reverse($myArray) as $v)
       $new = array($v => $new);

Sen $newArray[$myArray[0]][$myArray[1]][$myArray[2]] = 0; deneyebilirsiniz

Eğer özyineleme ile yapabilirsiniz:

function arrToKeys(&$arr,$initialCount){
   if($initialCount == 0 ){
      return $arr;
   }
   else{
      $newKey = $arr[0];
      unset($arr[0]);
      $arr[$newKey] = $arr;
      $initialCount--;
      return arrToKeys($arr,$initialCount);  
   }
}

//then call it like this
$newArr = arrToKeys($myArray,count($myArray));