php数组的写法,这两种php数组的写法有何不同?

一:

while(!$param->end)

{

$param_array[$param->field['param_group_id']]['param_group_name'] = $param->field['param_group_name'];

$param_array[$param->field['param_group_id']]['values'][$param->field['param_id']]

= $param->field['param_name'];

$param->move_next();

}

二:

while(!$param->end)

{

$param_array[$param->field['param_group_id']] = array(

'param_group_name' => $param->field['param_group_name'],

'values' => array(

$param->field['param_id'] => $param->field['param_name']

)

);

$param->move_next();

}

while循环每次取$param->field中的一行数据,在第二中写法中$param_array['some_id']['values']数组中最终只有一个元素,不知道怎么回事?

回复内容:

一:

while(!$param->end)

{

$param_array[$param->field['param_group_id']]['param_group_name'] = $param->field['param_group_name'];

$param_array[$param->field['param_group_id']]['values'][$param->field['param_id']]

= $param->field['param_name'];

$param->move_next();

}

二:

while(!$param->end)

{

$param_array[$param->field['param_group_id']] = array(

'param_group_name' => $param->field['param_group_name'],

'values' => array(

$param->field['param_id'] => $param->field['param_name']

)

);

$param->move_next();

}

while循环每次取$param->field中的一行数据,在第二中写法中$param_array['some_id']['values']数组中最终只有一个元素,不知道怎么回事?

第二种写法每次都是重新定义 $param_aray[ $param->field['param_group_id'] ] 这个元素,当 $param->field['param_group_id'] 重复的时候会造成对 $param_aray[ $param->field['param_group_id'] ] 的覆盖,看 DEMO 更清楚一点:

$data = array(

array("id"=> 1, "name"=>"a", "group"=>2, "value"=>10),

array("id"=> 2, "name"=>"b", "group"=>1, "value"=>11),

array("id"=> 3, "name"=>"c", "group"=>2, "value"=>12),

array("id"=> 4, "name"=>"d", "group"=>1, "value"=>13),

array("id"=> 5, "name"=>"e", "group"=>2, "value"=>14),

);

/* 第一种 */

$result = array();

foreach( $data as $item ) {

$result[ $item['group'] ]['value'][ $item['id'] ] = $item['value']

}

var_dump( $result );

/* 第二种 */

$result = array();

foreach( $data as $item ) {

$result[ $item['group'] ] = array(

"value" => array( $item['id'] => $item['value'] )

);

}

var_dump( $result );

相关标签:php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值