PHP 从具有 3 个值的数组创建 3D 数组

发布于 2024-08-11 04:05:06 字数 184 浏览 8 评论 0原文

又是我:

以下数组;

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

我需要:

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

有什么想法吗?

again me:

following array;

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

i need:

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

any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

以往的大感动 2024-08-18 04:05:06
 function onion($a) {
  return $a ? array(array_shift($a) => onion($a)) : 0;
}

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

//编辑:实际上doc的解决方案 更好,他/她的代码,有点改进

  $new = 0;
  foreach (array_reverse($myArray) as $v)
       $new = array($v => $new);
 function onion($a) {
  return $a ? array(array_shift($a) => onion($a)) : 0;
}

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

//edit: actually doc's solution is better, his/her code, a bit improved

  $new = 0;
  foreach (array_reverse($myArray) as $v)
       $new = array($v => $new);
陌路黄昏 2024-08-18 04:05:06
$newarr[array_pop($myarr)] = 0;
foreach (array_reverse($myarr) as $v)
    $newarr[$v] = $newarr;
$newarr[array_pop($myarr)] = 0;
foreach (array_reverse($myarr) as $v)
    $newarr[$v] = $newarr;
不甘平庸 2024-08-18 04:05:06

您可以尝试 $newArray[$myArray[0]][$myArray[1]][$myArray[2]] = 0;

You might try $newArray[$myArray[0]][$myArray[1]][$myArray[2]] = 0;

吾家有女初长成 2024-08-18 04:05:06
$newArray = array($oldArray[0] => array($oldArray[1] => array($oldArray[2] => 0)));
$newArray = array($oldArray[0] => array($oldArray[1] => array($oldArray[2] => 0)));
去了角落 2024-08-18 04:05:06

你可以用递归来做到这一点:

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));

you could do it with recursion:

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));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文