Home > Backend Development > PHP Tutorial > php foreach 循环数组 并设定key

php foreach 循环数组 并设定key

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-23 14:13:37
Original
1257 people have browsed it

foreach($role as $k=>$v){	$arrayRole[$k=$v->role_id]=$v->role_code;					} 
Copy after login



如题 我写的 key 总是设置不了


回复讨论(解决方案)

怎么设置不了,print_r($role); 看看

foreach($role as $k=>$v){
$arrayRole[$v->role_id]=$v->role_code;

}

foreach($role as $k=>$v){
$arrayRole[$v->role_id]=$v->role_code;

}

foreach($role as $k=>$v){
$arrayRole[$k][$v->role_id]=$v->role_code;

}

$k=$v->role_id
Copy after login

这个能当键吗

输出 的是 [user_roles] => Array ( [0] => 1 [1] => 3 ) 前边的 键值 还是 0 1

那当然不对了。第二维必须是一个对象。且有 role_id,role_code 属性才行。

.....不是 我的是 一维数组 前边的是yii 的格式

仔细说明下吧 我做 的只是向 [user_roles] 放一个数组 数组


foreach($role as $k=>$v){
$arrayRole[$k=$v->role_id]=$v->role_code;

}

我这样写的数组 放进去 以后发现 数组的 key 没有被设置成功

print_r($role);
贴出结果

Array ( [user_name] => sss [user_password] => 123 [user_roles] => Array ( [0] => 1 [1] => 3 ) [user_sex] => 男 [user_birthday] => 1992-12-23 [user_relation] => 18716439681 [dep_id] => dep_cn [user_address] => xxxxxx [user_allowed] => [user_createtime] => 0 [user_lasttime] => 0 [user_realname] => demo [user_id] => )


我说的 红色区域

1、你的这个是数组,不是对象。不能用对象方式访问
2、你的 foreach( $role as $k=>$v){ 中的 是指那套红的部分吗?显然不是
按我的要求,应该是整个数据

foreach($role as $k=>$v){
if($k == 'user_roles') { .... }
}

你最好在描述一下,你打算加工成什么样的形式

foreach($role as $k=>$v){ 是 红色部分的

<?php			foreach($role as $k=>$v){			  $arrayRole[$v->role_id]=$v->role_code;													} 			?>		<?php echo $form->labelEx($model,'user_roles'); ?>		<?php echo $form->checkBoxList($model,'user_roles',$arrayRole); ?>		<?php echo $form->error($model,'user_roles'); ?>
Copy after login
Copy after login
Copy after login


这是 红色部分 的 代码
我只是向 [user_roles] => Array ( [0] => 1 [1] => 3 ) 有下划线的地方 上边代买生成的 我只是想问 为什么 我的数组 key 值设置不成功 怎么扯到这里来了

不说其他的,你本身那么写会有问题。
foreach里面定义了$k
然后新数组又有$k=$v->role_id;这个时候foreach的$k都变了。

你想要的数组是什么样的?

foreach($role as $k=>$v){ 是 红色部分的

<?php			foreach($role as $k=>$v){			  $arrayRole[$v->role_id]=$v->role_code;													} 			?>		<?php echo $form->labelEx($model,'user_roles'); ?>		<?php echo $form->checkBoxList($model,'user_roles',$arrayRole); ?>		<?php echo $form->error($model,'user_roles'); ?>
Copy after login
Copy after login
Copy after login


这是 红色部分 的 代码
我只是向 [user_roles] => Array ( [0] => 1 [1] => 3 ) 有下划线的地方 上边代买生成的 我只是想问 为什么 我的数组 key 值设置不成功 怎么扯到这里来了
检查$v是否有role_id属性

           foreach($role as $k=>$v){			 $arrayRole[$v->role_id]=$v->role_code;									} 
Copy after login


我想问的是 我的 这段 代码有没有问题 还有 foreach 循环 赋值并设置键值 还有没有其他方法 以及你有能力有爱心的 话 告诉我下 我的方法哪里出错了 。 看完这些的 小生在此拜谢了。

我想要的数组 key 放 role的 id value 放 role的编码


foreach($role as $k=>$v){ 是 红色部分的

<?php			foreach($role as $k=>$v){			  $arrayRole[$v->role_id]=$v->role_code;													} 			?>		<?php echo $form->labelEx($model,'user_roles'); ?>		<?php echo $form->checkBoxList($model,'user_roles',$arrayRole); ?>		<?php echo $form->error($model,'user_roles'); ?>
Copy after login
Copy after login
Copy after login
 

   这是     红色部分  的  代码      
我只是向  [user_roles] =>  Array ( [0] => 1 [1] => 3 )   有下划线的地方 上边代买生成的  我只是想问  为什么  我的数组  key 值设置不成功     怎么扯到这里来了   
检查$v是否有role_id属性

role_id  有值      

单纯从这个foreach来看是没有问题的。

哦  我在研究研究 

foreach 是没问题的,关键是你的数组没有你说的 role_id 和 role_code 元素。

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template