2015-05-28 3 views
0

Я хочу заполнить массив в цикле while.Как создать этот многомерный массив в PHP

Я хочу, чтобы отобразить этот массив так:

category 1 => Company A => 'name', 'city', 'CEO', 
       Company B => 'name', 'city', 'CEO' 

category 2 = Company A => 'name', 'city', 'CEO', 
       Company B => 'name', 'city', 'CEO' 

ect ........ 

Вот мой текущий код в моем время цикла

$array_cat[] = array(
       array(
        'category' => $cat, 
         array(
         'company' => array(

          'name' => $name, 
          'city' => $city, 
          'CEO' => $ceo 

         ) 
        ) 
       ) 
      ); 

Мой код, когда я показываю его

foreach ($array_cat as $item) { 
    foreach ($array_cat['category'] as $company_display) { 
     echo $company_display['company']['name'][]; 
    } 
} 

Спасибо за помощь;)

+1

В чем проблема? В чем проблема? –

+0

Я хочу отобразить его, но это не так, как я хочу –

+0

Какой у вас код? –

ответ

0

Возникла проблема во внутренней петле foreach и эхо-линии.

Заменить $ array_cat по $ п и эхо линии есть ошибка: Невозможно использовать [] для чтения

Следуя пути, вы можете достичь своей цели.

foreach ($array_cat as $item) { 
    foreach ($item as $company_display) { 
     echo $company_display['category']['company']['name']; 
    } 
} 
1

попробовать это:

$array1 = array('category1' => 
       array('Company A' => 
         array('name', 'city', 'CEO')), 
       'category2' => 
       array('Company B' => 
         array('name', 'city', 'CEO'))); 

foreach ($array1 as $key => $value) 
{ 
    foreach ($value as $key1 => $value1) 
    { 
     echo "<pre>"; 
     print_r($value1); 
     echo "</pre>"; 
    } 
} 

Проблема в вашем внутреннем цикле Еогеасп

0

How to create this multidimensional array in PHP

Если бы я разработать массив для этого, я хотел бы сделать что-то вроде этого:

$array = array(
    //Category 1, nameless i assume? 
    array(
     //Companies 
     "Company A" => array(
          //Company properties 
          "name" => "My A company", 
          "city" => "Some city that starts with an A", 
          "CEO" => "Some CEO that starts with an A" 
         ), 
     "Company B" => array(
          //Company properties 
          "name" => "My B company", 
          "city" => "Some city that starts with an B", 
          "CEO" => "Some CEO that starts with an B" 
         ), 
    ), 

    //Category two, nameless i assume 
    array(
     //Companies 
     "Company C" => array(
          //Company properties 
          "name" => "My C company", 
          "city" => "Some city that starts with an C", 
          "CEO" => "Some CEO that starts with an C" 
         ), 
     "Company D" => array(
          //Company properties 
          "name" => "My D company", 
          "city" => "Some city that starts with an D", 
          "CEO" => "Some CEO that starts with an D" 
         ), 
    ), 
); 

Тогда, если бы я хотел так мне данные из него, я мог бы сделать что-то вроде этого:

$companyAcity = $array[0]['Company A']['city']; 

echo $companyAcity; 

Если бы я хотел цикла в массиве, я мог так что-то вроде этого:

for($categoryID = 0; categoryID < count($array); $i++) { 
    //Prints data for each category it loops through. 
    echo $array[$categoryID]; 

    //Loops through the companies contained in the current category where it's looping through 
    foreach($array[$categoryID] as $companyName => $companyData) { 
     echo $companyName; 
     echo $companyData['name']; 
    } 
} 

I want to fill an array in a while loop.

Если вы хотите добавьте данные в массив во время цикла, вы можете сделать что-то вроде этого:

for($categoryID = 0; categoryID < count($array); $i++) { 
    $array[$categoryID][] = $categoryID +1; 
} 
Смежные вопросы