Php foreach循环的非法字符串偏移量
下面是代码,我正在尝试打印包含下拉菜单值的数组 然后第二个foreach循环尝试选择字段。 输出是我想要的方式,意味着它打印所有菜单项和所选菜单项Php foreach循环的非法字符串偏移量,php,codeigniter,foreach,Php,Codeigniter,Foreach,下面是代码,我正在尝试打印包含下拉菜单值的数组 然后第二个foreach循环尝试选择字段。 输出是我想要的方式,意味着它打印所有菜单项和所选菜单项 foreach($results as $data): $st = ''; foreach($SelectedActor as $SelectedActor): if($SelectedActor['id']==$data['id']){$st='selected="selected"';}
foreach($results as $data):
$st = '';
foreach($SelectedActor as $SelectedActor):
if($SelectedActor['id']==$data['id']){$st='selected="selected"';}
endforeach;
$dd .="<option ".$st." value=".$data['id']."> ".$data['artist_name']." </option>";
endforeach;
这两个数组的Vardump是
array (size=2)
0 =>
array (size=2)
'id' => string '1' (length=1)
'artist_name' => string ' oyuncu' (length=19)
1 =>
array (size=2)
'id' => string '4' (length=1)
'artist_name' => string 'hep brabir' (length=10)
array (size=2)
0 =>
array (size=2)
'id' => string '1' (length=1)
'artist_name' => string 'oyuncu' (length=19)
1 =>
array (size=2)
'id' => string '4' (length=1)
'artist_name' => string 'hep brabir' (length=10)
有人能帮我找出这个错误的原因吗。下面一行是错误的:
foreach($SelectedActor as $SelectedActor)
您需要执行以下操作:
foreach($SelectedActor as $actor):
if($actor['id']==$data['id']){
$st='selected="selected"';
}
endforeach;
这里您可能使用了与$SelectedActor
相同的名称
foreach($SelectedActor as $ItemSelectedActor):
if($ItemSelectedActor['id']==$data['id']){$st='selected="selected"';}
正常
var\u dump($SelectedActor,$data)
-其中一个不是数组。很抱歉我在这里犯了一个愚蠢的错误。我在做foreach($SelectedActor as$SelectedActor):我像foreach一样做($SelectedActor as$selectedactors):只需更改第二个变量名,它就可以工作了。但我不明白在这种情况下它为什么会出错。大多数情况下,foreachloop的工作方式是罚款,在这种情况下,有两个foreach循环,所以它的错误?或者THER是另一个原因。如果[$ACTIT'ID ] = $$数据[ ID ]),您可能需要考虑修复这行<代码> {<代码> >
foreach($SelectedActor as $SelectedActor):
if($SelectedActor['id']==$data['id']){$st='selected="selected"';}
foreach($SelectedActor as $ItemSelectedActor):
if($ItemSelectedActor['id']==$data['id']){$st='selected="selected"';}