2012-04-17 22 views
-1

私は、この行のビューで未定義のインデックスを取得しています理由を把握しようとしている:未定義のインデックス

<?php if ($allies[''] == 'No Wrestlers In Database') { 

コントローラー:

if (empty($rosterList)) { 
     $allies[] = 'No Wrestlers In Database'; 
} 
else 
{ 
     $allies[] = 'Please Select An Option'; 
     foreach ($rosterList AS $ally) 
     { 
      $allies[$ally->id] = $ally->rosterName; 
     } 
} 

ビュー:

<?php if ($allies[''] == 'No Wrestlers In Database') { 
    echo $allies['']; 
} 
else { 
    echo form_dropdown('ally1', $allies, $alliesList->ally1ID); 
} ?> 

編集:

私の最初のドロップダウンが正しい値を示していない理由を理解しようとしています。

Array 
(
[0] => stdClass Object 
    (
     [id] => 1 
     [rosterListID] => 1 
     [ally1ID] => 2 
     [ally2ID] => 3 
     [ally3ID] => 2 
     [ally4ID] => 3 
     [ally5ID] => 2 
    ) 

) 

同盟国が

Array 
(
[0] => Please Select An Option 
[1] => Kid Wonder 
[3] => Oriel 
[2] => Test Character 
) 

をしますprint_r alliesListますprint_rはEDIT 2:

は、ここで私はそれを作ったものだが、非オブジェクトのプロパティを取得しようと言う私の見解・ファイル内のエラーを取得します。

//Get member's allies 
    $alliesList = $this->bios->getRosterAlliesByRosterID($this->session->userdata('defaultRosterListID')); 
    echo "<pre>"; 
    print_r($alliesList); 
    echo "</pre>"; 
    // Get list of members 
    $rosterList = $this->bios->getAllRoster(); 
    $allies = array(); 
    if (empty($rosterList)) { 
     $allies[''] = 'No Wrestlers In Database'; 
    } 
    else 
    { 
     $allies[''] = 'Please Select An Option'; 
     foreach ($rosterList AS $ally) 
     { 
      $allies[$ally->id] = $ally->rosterName; 
     } 
    } 
    echo "<pre>"; 
    print_r($alliesList); 
    echo "</pre>"; 

<?php echo form_label('Ally 1', 'ally1'); ?> 
<div> 
    <?php if (in_array('No Wrestlers In Database', $allies)) { 
     echo 'No Wrestlers In Database'; 
    } 
    else { 
     echo form_dropdown('ally1', $allies, $alliesList->ally1ID); 
    } ?> 
</div> 
+2

キー '' ''で' $ allies'にインデックスを付けるので、配列にそのようなキーはありません。 – Jon

+0

空の文字列をキーとして使用しないことをお勧めします –

+0

[PHP: "Notice:Undefined variable"と "Notice:Undefined index"](http://stackoverflow.com/questions/4261133/php-通知未定義の変数と通知未定義のインデックス) – Jocelyn

答えて

4

割り当て時に、割り当てインデックスが配列内で0からnまでインクリメントされるためです。

+0

私の投稿の編集をチェックアウトします。返信いただきありがとうございます。 –

+0

それは動作しません –

3

$ arr []を使用すると、キー ''に値は作成されず、配列の末尾に要素が追加されます。

2

あなたは配列の宣言について誤解しています。

$同盟国[ ''] [] []

$同盟国$同盟国に等しくない場合には、配列の最後に、あなたのオブジェクトを追加するための使用です。キーが自動的にインクリメントされます。

$同盟国[「」]あなたは、配列のキーの詳細を読むことができ

、この1、「」「あなたの値は、キーで配列に保存されます、文字列なので、」here

このキーは、整数または文字列のいずれかです()。値はどのタイプでもかまいません。

有効な整数を含む文字列は、整数型にキャストされます。例えば。キー「8」は実際には8の下に格納されます。一方、「08」は有効な10進整数ではないため、キャストされません。

nullは空の文字列にキャストされます。つまり、キーnullは実際には ""の下に格納されます。

あなたが本当にそれを表示したい場合は、[「」]あなたのコントローラ $同盟国[]に$同盟国を変更することがデータベースではありませんレスラー

あなたはどうかを確認したい場合は」 'が配列内にある場合は、in_array()関数を使用する必要があります。

+0

私の記事のEDIT 2をチェックしてください。 –

関連する問題