下面两种代码写法,你喜欢哪一种?为什么?

2016-01-26 22:55:26 +08:00
 banxi1988

第一段:

$cate = array();
        $cate[0]['id']=1;$cate[0]['name']='种类 1';
        $cate[1]['id']=2;$cate[1]['name']='种类 2';
        $cate[2]['id']=3;$cate[2]['name']='种类 3';
        $cate[3]['id']=4;$cate[3]['name']='种类 4';
        $cate[4]['id']=5;$cate[4]['name']='种类 5';

第二段:

$cate_list = ['种类 1','种类 2',' 种类 3','种类 4','种类 5'];
$cate = [];
foreach($cate_list as $index => $value){
    $cate[] = ['id'=>$index + 1,'name'=>$value];
}

``
4134 次点击
所在节点    PHP
25 条回复
cxbig
2016-01-26 23:01:27 +08:00
除非是初始化数据库代码,不然哪种都看着不舒服。
xifangczy
2016-01-26 23:03:54 +08:00
$cate = array
(
array('id'=>1,'name'=>'种类 1'),
array('id'=>2,'name'=>'种类 2')
);
ayouwei
2016-01-26 23:04:48 +08:00
2. 对种类增加,删除,插入,调序没 1 那么疼。
yadam
2016-01-26 23:15:21 +08:00
$cate_list = ['种类 1','种类 2',' 种类 3','种类 4','种类 5'];
$cate = array_combine(range(1, count($cate_list)), $cate_list);
pynix
2016-01-26 23:27:52 +08:00
相比之下 2 更优雅。。。
msg7086
2016-01-26 23:59:06 +08:00
如果 cate 非空的话,我会考虑用 array-merge 。否则直接构建数组立即量即可。
zfj1441
2016-01-27 00:39:18 +08:00
个人觉得第一种,代码工整直观。
gdtv
2016-01-27 00:46:33 +08:00
如果有规律并且数量比较大的,就第 2 种,否则就第 1 种
jsjscool
2016-01-27 01:14:37 +08:00
array_push(); 这么好的函数你不用
Asimov
2016-01-27 06:57:47 +08:00
我喜欢第一种,一眼望去就知道是干嘛的。
aivier
2016-01-27 08:46:26 +08:00
除非客户捉弄我,不然就写第二种
banxi1988
2016-01-27 09:11:50 +08:00
@jsjscool `$cate[] = XX;` 这种写法一般优于 `array_push`
banxi1988
2016-01-27 09:27:21 +08:00
@yadam 哈哈,让我知道了 array_combine 这个 函数.
不过您的这个代码并不能达到想要的效果.
你的代码输出结果:

```php
(
[1] => 种类 1
[2] => 种类 2
[3] => 种类 3
[4] => 种类 4
[5] => 种类 5
)
```
我需要的结果:

```php
(
[0] => Array
(
[id] => 1
[name] => 种类 1
)

[1] => Array
(
[id] => 2
[name] => 种类 2
)

[2] => Array
(
[id] => 3
[name] => 种类 3
)

[3] => Array
(
[id] => 4
[name] => 种类 4
)

[4] => Array
(
[id] => 5
[name] => 种类 5
)

)
```
anyforever
2016-01-27 09:37:14 +08:00
得看你数据来源,如果数据是死的,@xifangczy +1
louk78
2016-01-27 10:55:56 +08:00
第二张看起来优雅点
changlers
2016-01-27 11:53:05 +08:00
对于固定的数据而言,没啥区别吧,一开始一直用第二种,后来用第一种了
chuhemiao
2016-01-27 13:50:45 +08:00
2 看起来简洁
techmoe
2016-01-27 15:55:10 +08:00
array 套两层套进去就好了嘛

这是我在这里的第一帖。。大家好我是新人,很高兴认识大家
penjianfeng
2016-01-27 21:52:56 +08:00
肯定第二段,当然,什么写法不重要,都遵守同样的规则就行了
libook
2016-01-27 23:41:27 +08:00
let cate_list = [
{"id": 1, "name": "种类 1"},
{"id": 2, "name": "种类 2"},
{"id": 3, "name": "种类 3"},
{"id": 4, "name": "种类 4"},
{"id": 5, "name": "种类 5"}
]

好吧,我是 JS 党混进来了~哈哈~可以无视我

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/253590

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX