2015-03-05 2 views
0

Привет Я являюсь разработчиком C# и в настоящее время немного работаю в PHP. Я знаю, что это очень простая задача, но у меня действительно нет идеи для этого. Мне нужно создать список с элементами, которые будут динамически создаваться с помощью цикла foreach. Это элементы статического списка, которые я хочу динамически создавать с помощью цикла foreach.PHP-список объектов с циклом foreach

 $item_1 = new Item(); 
     $item_1->setName('Item 1') 
      ->setCurrency('USD') 
      ->setQuantity(2) 
      ->setPrice('15'); 

     $item_2 = new Item(); 
     $item_2->setName('Item 2') 
      ->setCurrency('USD') 
      ->setQuantity(4) 
      ->setPrice('7'); 

     $item_3 = new Item(); 
     $item_3->setName('Item 3') 
      ->setCurrency('USD') 
      ->setQuantity(1) 
      ->setPrice('20'); 

     // add item to list 
     $item_list = new ItemList(); 
     $item_list->setItems(array($item_1, $item_2, $item_3)); 
+0

Вы знаете, как написать цикл? Вы знаете, как работать с массивами? Что именно вы застряли в этом? Откуда берутся динамические данные? – deceze

ответ

0
$items = array(); 

for ($i = 1; $i <= SOME_NUMBER; $i++) 
{ 
    $item = new Item(); 
    $item->setName('Item ' . $i); 
    // ... 
    $items[] = $item; 
} 

// ... 

$itemList->setItems($items); 
+0

Да это сработало для меня Спасибо :) –

+0

без проблем, добро пожаловать – Marius

1

Используйте массив для этого:

$totalItems = 3; 
$itemsList = new ItemsList(); 
$items = array(); 

for ($i = 1; $i <= $totalItems; $i++) { 
    $items[$i] = new Item(); 
    $items[$i]->setName("Item{$i}"); // Or "Item".$i; " - means PHP will search for variable inside (either with "{}" or without). ' - means PHP will ignore variables 
    $items[$i]->setCurrency('USD'); 
    /* If all methods returns Item object, than you can chine methods calls: */ 
    $item[$i] = new Item(); 
    $item[$i] 
     ->setName("Item{$i}") 
     ->setCurrency('USD') 
     ->setQuantity($this->getQuantity()); 
} 

$itemsList->setItems($items); 
1
$item_list = array(); 
foreach($data as $value){ 
    $item =new stdClass; 
    $item->name = $value->name; 
    $item->price = $value->price; 
    $item->quantity = $value->quantity; 
    $item->currancy = $value->currancy; 
    $item_list[] = $item; 
} 
Смежные вопросы