2012-05-18 8 views
0

Извините, что я уверен, что это легко, но я потратил годы, пытаясь решить эту простую проблему. У меня есть массив под названием $listOfLinks. Когда я print_r это выход:Еще один простой php array looping newbie

Array ([0] => Array ([LinkID] => 1 [GroupID] => 1 [Description] => Home [Title] => Home Page [Hyperlink] => [Target] =>) [1] => Array ([LinkID] => 2 [GroupID] => 1 [Description] => View Employees [Title] => View Employees [Hyperlink] => Views/ViewEmployees.php [Target] =>)) 

Я хочу перебрать массив печати из таких вещей, как Title. Пока что мой код выглядит так:

foreach($listOfLinks as $key => $element) 
{ 
    echo $key["Title"]; 
} 

Что-то не так, поскольку выход абсолютно ничего. Ошибок нет. сообщение или что-то еще. Я пытался следовать советам http://www.tizag.com/phpT/arrays.php, но я, кажется, что-то неправильно понял.

Эта ссылка для Foreach loop returning null values in PHP? выглядит многообещающей, но в конечном итоге она оказалась простой проблемой, не связанной с моей. Также перспективным было PHP: Loop through multidimensional array and establish parent-child relationships between array items, но у него не было подходящего решения. Я думал, что я был близок с этим Simple array question in PHP, но оказалось, что он не связан. Это также выглядело многообещающим, но не было. PHP Yet another Multidimensional Associative Array problem.

Похоже, что ответ на Another php array looping question, но я не понимаю его, если он есть.

Пожалуйста, не ненавидите меня за такой простой вопрос. Я действительно очень стараюсь это понять.

ответ

1
foreach($listOfLinks as $value) 
{ 
    echo $value["Title"]; 
} 

Что вы делаете, это индексирование в ключ. Вместо этого индексируйте элемент массива.

2

Когда цикл с синтаксисом foreach вы использовали, вы хотите работать с $element переменной (который содержит данные текущего элемента), а не $key один (который содержит только индекс текущего элемента в массив):

foreach($listOfLinks as $key => $element) 
{ 
    echo $element["Title"]; 
} 

Кроме того, как вы не используете ключ для каждого элемента, вы можете использовать этот сокращенный синтаксис:

foreach($listOfLinks as $element) 
{ 
    echo $element["Title"]; 
} 
+0

Отличный ответ @Pascal, но я назначил галочку xbonez, потому что он ответил первым и не имеет почти репутации, которую вы сделали. Ваш ответ был одинаково хорош. Надеюсь, это справедливо. Благодарю. – Brett

+0

проблем нет; Рад, что смог помочь :-) –