2013-10-26 3 views
0

Я довольно новыми для PHP и работают на перекручивание через этот массив для дней ... Вздох ...Использование цикла Еогеасп через массив в массив с помощью PHP

http://pastebin.com/Rs6P4e4y

Я пытаясь получить имя и значения headshot для группы писателей и режиссеров.

Я пытался определить функцию foreach, чтобы использовать ее, но не повезло.

<?php foreach ($directors as $key => $value){ 
      //print_r($value); 
     } 
?> 

Любая помощь приветствуется.

ответ

1

Используйте свойства -> для доступа к свойствам объектов.

foreach ($directors as $director) { 
    echo 'Name: ' . $director->name . "\n"; 
    echo "Headshot: " . $director->images->headshot . "\n"; 
} 
0

Имея переменную $foo, которая является объектом, вы можете получить доступ к собственности bar используя синтаксис:

$foo->bar 

Так что если у вас есть массив О.Д. директоров по имени $directors, вы можете просто использовать его так же, как в foreach:

foreach ($directors as $value){ 
    echo $value->name." ".$value->images->headshot; 
} 
+0

Сложно использовать переменную '$ key' для значений, а не для ключей. – Barmar

+0

Вы правы, исправлены. Это вроде поздно здесь :) –

2

Вы ищете какого-нибудь такого зверя? Вы не писали, как вы хотели их обработать, но, надеюсь, это вам поможет.

$directors = array(); 

foreach($object->people->directors as $o) 
    $directors[] = array('name' => $o->name, 'headshot' => $o->images->headshot); 

$writers = array(); 

foreach($object->people->writers as $o) 
    $writers[] = array('name' => $o->name, 'headshot' => $o->images->headshot); 

var_dump($directors); 
var_dump($writers); 

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

Надеюсь, это поможет.

1

Ваше решение уже отвечал, но я хочу добавить кое-что:

Это не массив, это объект. На самом деле свойство Director объекта является массивом. Посмотрите, что такое объект и какие ассоциативные массивы!

Объекты имеют свойства, массивы имеют ключи и значения.

$object = new stdClass(); 
$object->something = 'this is an object property'; 

$array = new array(); 
$array['something'] = 'this is an array key named something'; 

$object->arrayproperty = $array; 
echo $object->arrayproperty['something']; //this is an array key named something 

Удачи вам в изучении PHP! :)

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