Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php foreach循环的非法字符串偏移量_Php_Codeigniter_Foreach - Fatal编程技术网

Php 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循环尝试选择字段。 输出是我想要的方式,意味着它打印所有菜单项和所选菜单项

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"';}