2013-05-28 8 views
2

Я просто построил простой цикл foreach для запуска массива, но ничего не отображается. Никаких ошибок php.PHP foreach not looping

Может кто-нибудь сказать мне, почему это не работает?

$test = array (
      "1" => array(
       "name"=>"something" 
      ), 
      "2" => array(
       "name"=>"something" 
      ) 
     ); 

foreach ($test as $key => $arr) { 
    echo $arr[$key]["name"]; 
} 

ответ

4

Я думаю, что вы имели в виду ...

foreach ($test as $key => $arr) { 
    echo $test[$key]["name"]; 
} 

Или, еще проще ...

foreach ($test as $key => $arr) { 
    echo $arr["name"]; 
} 
+0

Так что бы смысл иметь $ обр в цикле? –

+1

'$ arr' - это просто удобный способ обратиться к' $ test [$ key] '. См. Http://php.net/manual/en/control-structures.foreach.php –

+0

Вместо этого я отредактировал сообщение, чтобы использовать '$ arr'. Очевидно, у вас есть несколько способов сделать это. – slashingweapon

0

Ваш массив написан таким образом, что «1» и «2» являются значения, а не ключи.

что вам нужно:

$test = array (
     array(
      "name"=>"something" 
     ), 
     array(
      "name"=>"something" 
     ) 
    ); 

также, у вас есть опечатка на вашем Еогеасп. вам нужно $test[$key] и не $arr[$key]

+0

Ahhhhhhhh ... (хлопает вниз головой на стол) –

5

Просто использовать $arr["name"] вместо $arr[$key]["name"].

0

Вы должны использовать ключ $ key в ссылке массива.

foreach ($test as $arr) { 
    echo $arr["name"]; 
} 

Вы можете обратиться поле массива как

foreach ($test as $key=>$arr) { 
    $test[$key][$name] 
} 

но делать это не использовать прямую ссылку на внутренние массивы

0

Try это,

foreach ($test as $key => $arr) { 
    echo $arr["name"]; 
} 
0

Использование

echo $arr["name"]; 

или

echo $test[$key]["name"]; 
1
foreach ($test as $key => $arr) { 
    echo $test[$key]["name"]; 
} 

ИЛИ

foreach ($test as $key => $arr) { 
    echo $arr["name"]; 
}