首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何正确创建此PHP数组?

如何正确创建此PHP数组?
EN

Stack Overflow用户
提问于 2017-01-26 14:53:07
回答 2查看 50关注 0票数 0

我有一个如下所示的PHP数组:

代码语言:javascript
运行
复制
$categories = array(
    array('id' => 1,  'parent' => 0, 'name' => 'Category A'),
    array('id' => 2,  'parent' => 0, 'name' => 'Category B'),
    array('id' => 3,  'parent' => 0, 'name' => 'Category C'),
    array('id' => 4,  'parent' => 0, 'name' => 'Category D'),
    array('id' => 5,  'parent' => 0, 'name' => 'Category E'),
    array('id' => 6,  'parent' => 2, 'name' => 'Subcategory F'),
    array('id' => 7,  'parent' => 2, 'name' => 'Subcategory G'),
    array('id' => 8,  'parent' => 3, 'name' => 'Subcategory H'),
    array('id' => 9,  'parent' => 4, 'name' => 'Subcategory I'),
    array('id' => 10, 'parent' => 9, 'name' => 'Subcategory J'),
);

当在array上循环时,我想在foreach中创建另一个数组。该数组应该是这样的:

代码语言:javascript
运行
复制
$cats[$parent][$id] = $name; 

这就是我尝试的方式。

代码语言:javascript
运行
复制
  foreach ($categories as $key => $value) {        
    // echo '<pre>', print_r($value). '</pre>';
    // echo $value['id'];
    $cats[$value['parent']][$value['id']] = $value['name'];   
  }

但这对我不起作用。不是工作的意思,它创建了错误的数组。

有人能帮我吗。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-01-26 14:56:30

比如类别的this.Make数组。

代码语言:javascript
运行
复制
<?php

$categories = array(
    array('id' => 1,  'parent' => 0, 'name' => 'Category A'),
    array('id' => 2,  'parent' => 0, 'name' => 'Category B'),
    array('id' => 3,  'parent' => 0, 'name' => 'Category C'),
    array('id' => 4,  'parent' => 0, 'name' => 'Category D'),
    array('id' => 5,  'parent' => 0, 'name' => 'Category E'),
    array('id' => 6,  'parent' => 2, 'name' => 'Subcategory F'),
    array('id' => 7,  'parent' => 2, 'name' => 'Subcategory G'),
    array('id' => 8,  'parent' => 3, 'name' => 'Subcategory H'),
    array('id' => 9,  'parent' => 4, 'name' => 'Subcategory I'),
    array('id' => 10, 'parent' => 9, 'name' => 'Subcategory J'),
);

 foreach ($categories as $key => $value) {        

    $cats[$value['parent']][$value['id']][]= $value['name'];   
  }

  print_r($cats);
票数 0
EN

Stack Overflow用户

发布于 2017-01-26 16:12:04

你想这样吗?

代码语言:javascript
运行
复制
<?php
$categories = array(
array('id' => 1,  'parent' => 0, 'name' => 'Category A'),
array('id' => 2,  'parent' => 0, 'name' => 'Category B'),
array('id' => 3,  'parent' => 0, 'name' => 'Category C'),
array('id' => 4,  'parent' => 0, 'name' => 'Category D'),
array('id' => 5,  'parent' => 0, 'name' => 'Category E'),
array('id' => 6,  'parent' => 2, 'name' => 'Subcategory F'),
array('id' => 7,  'parent' => 2, 'name' => 'Subcategory G'),
array('id' => 8,  'parent' => 3, 'name' => 'Subcategory H'),
array('id' => 9,  'parent' => 4, 'name' => 'Subcategory I'),
array('id' => 10, 'parent' => 9, 'name' => 'Subcategory J'),
);
$newarray = array();
foreach($categories as $array)
{
  $newarray[$array['parent']][$array['id']] = $array['name'];
}
print_r($newarray);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41868181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档