php foreachは配列をループしてキーを設定します

WBOY
リリース: 2016-06-23 14:13:37
オリジナル
1223 人が閲覧しました

foreach($role as $k=>$v){	$arrayRole[$k=$v->role_id]=$v->role_code;					} 
ログイン後にコピー



タイトルの通り、私が書いたキーが常に設定できないことがあります


ディスカッションへの返信(解決策)

なぜ設定できないのか見てみましょう

foreach($role as $k=>$ v){
$arrayRole[$v->role_id]=$v->role_code; ole[$v->role_id; ;role_code; 3) 前のキーの値は 0 1 のままです

もちろん、それは正しくありません。 2 番目の次元はオブジェクトである必要があります。必要なのは、role_id、role_code 属性のみです。


.....いいえ、私のものは yii の形式です

私がやっているのは、配列を [user_roles] 配列


に入れるだけです。 ($role as $k=> ;$v){
$arrayRole[$k=$v->role_id]=$v->role_code;

}


このように書いた配列を入れて、配列のキーが正しく設定されていないことがわかりました

print_r($role);
結果を投稿します

Array ( [user_name] => sss [user_password] => 123 [user_roles] =>配列 ( [0] => 1 [1] => 3 ) [user_sex] => 男性 [user_birthday] => 1992-12-23 [dep_id] => user_address] => xxxxxx [user_allowed] => [user_creat etime] => デモ [user_id] =>赤い領域

1. これはオブジェクトではなく配列です。オブジェクト モードではアクセスできません
2. foreach( $role as $k=>$v){ の「」は赤い部分を指していますか?明らかにそうではありません
私のリクエストによれば、データ全体である必要があります

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

あなた どのような形式に処理する予定かを記述するのが最善です

foreach($role as $k=>$v){ 赤い部分です

$k=$v->role_id
ログイン後にコピー


これが赤い部分のコードです

私は[user_roles ] => Array ( [0] => 1 [1] => 3 ) 下線がある場合、それは上記のキー値の理由を尋ねたいだけです。配列は正常に設定されませんでした。どうやってここに来ましたか?


そのように書くと問題が発生します。
$k は foreach で定義されます
このとき、新しい配列は $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'); ?>
ログイン後にコピー
ログイン後にコピー


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

           foreach($role as $k=>$v){			 $arrayRole[$v->role_id]=$v->role_code;									} 
ログイン後にコピー


我想问的是 我的 这段 代码有没有问题 还有 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'); ?>
ログイン後にコピー
ログイン後にコピー
 

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

role_id  有值      

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

哦  我在研究研究 

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート