2013-11-18 3 views
0

HI Ниже приведен код, я пытаюсь напечатать массив, который содержит значения выпадающего меню , а затем второй цикл foreach пытается выбрать поле. Выходной путь я хочу, имею в виду это напечатать все меню и выбрал,незаконное смещение строки foreach loop

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; 

но страница также показать эту ошибку

A PHP Error was encountered 

Severity: Warning 

Message: Illegal string offset 'id' 

Filename: controllers/replik.php 

Line Number: 328 

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) 

Может ли кто-нибудь помочь мне получить причину этой ошибки.

+0

'var_dump ($ SelectedActor, $ data)' - один из них не является массивом. – deceze

ответ

2
foreach($SelectedActor as $SelectedActor): 
     if($SelectedActor['id']==$data['id']){$st='selected="selected"';} 

здесь используется тот же имя $SelectedActor, может быть

foreach($SelectedActor as $ItemSelectedActor): 
      if($ItemSelectedActor['id']==$data['id']){$st='selected="selected"';} 

нормально

+0

Извините за тупую ошибку, которую я здесь делаю. я делал Еогеасп ($ SelectedActor в $ SelectedActor): я сделать это как Еогеасп ($ SelectedActor как $ SelectedActores): только изменяет второй имя переменной и работать. – Dexture

+0

Ничего, я сделал такие ошибки раньше .. – Patato

+0

, но я не знаю, в этом случае, почему это дает ошибку. в основном, когда он делает foreachloop способом, который работает штрафом, в этом случае существует две петли foreach, поэтому их ошибка? или их другая причина. – Dexture

0

Ниже линии неправильно:

foreach($SelectedActor as $SelectedActor) 

Вам нужно сделать:

foreach($SelectedActor as $actor): 
    if($actor['id']==$data['id']){ 
     $st='selected="selected"'; 
    } 
endforeach; 
+0

Возможно, вам захочется рассмотреть эту строку 'if ($ actor'id '] == $ data [' id ']) {' – asprin

Смежные вопросы