2010-10-07 3 views
3

Допустим, я хотел бы управлять многомерный массив типа (псевдо-код):как инициализировать PHP двумерный массив

Array $colors 
* wine,red 
* cheese,yellow 
* apple, green 
* pear,brown 

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

$colors[x][y] = 'something'; 

ответ

4
$array = array(
    array('wine', 'red'), 
    array('cheese', 'yellow'), 
    array('apple', 'green'), 
    array('pear', 'brown') 
); 

UPD:

foreach ($array as $v) { 
    echo $v[0]; // wine, cheese... 
    echo $v[1]; // red, yellow... 
} 
+0

Александр Мне нужно получить доступ к обоим элементам из каждого элемента ... Посредством кодирования $ array ['wine'] можно было бы получить доступ к «красному» ... как бы вы получили доступ к «вину», в foreach loop? – Riccardo

+1

foreach ($ array as $ item) {echo $ item} будет возвращать красный желтый зеленый коричневый ..... как насчет возвращения также скулить, сыр, яблоко и груша? – Riccardo

+0

Извините. Смотрите мои изменения. – pltvs

0
$colors = array(
    array('wine' => 'red', 
     'cheese' => 'yellow', 
     'apple' => 'green', 
     'pear' => 'brown' 
    ) 
); 
+3

Первый массив лишний. – Incognito

3

Предполагая, что вы не хотите, ассоциативный массив, как ваш вопрос не упоминает об этом.

Это элегантный синтаксис PHP делает доступным:

<?php 
$colors = array(array("wine","red"), 
       array("cheese","yellow"), 
       array("apple", "green"), 
       array("pear", "brown")); 

print_r($arr); // Prints out an array as shown in output 
?> 

Выход:

Array 
(
    [0] => Array 
     (
      [0] => wine 
      [1] => red 
     ) 

    [1] => Array 
     (
      [0] => cheese 
      [1] => yellow 
     ) 

    [2] => Array 
     (
      [0] => apple 
      [1] => green 
     ) 

    [3] => Array 
     (
      [0] => pear 
      [1] => brown 
     ) 

) 

Чтобы перебрать доступ всех 0-х:

for($x = 0; $x < count($colors); $x++){ 
    echo $colors[$x][0]; 
} 

Альтернативно

for($colors as $couple){ 
    echo $couple[0]; 
} 

EDIT: Похоже, что вы на самом деле может быть лучше вместе с ассоциативной хотя ..

$colors = array("wine" => "red", 
       "cheese" => "yellow", 
       "apple" => "green", 
       "pear" => "brown"); 

Потому что вы все еще можете получить доступ ключи, как таковой:

for($colors as $key => $value){ 
     echo $key . " is " . $value; 
    } 
+1

Хороший образец, он показывает, как инициализировать массив, однако Я все еще не могу получить доступ к «левому столбцу» в цикле foreach, как только массив был инициализирован ... – Riccardo

+1

Обновлен с примером цикла. –

+0

Я надеялся, что смогу избежать цикла for и просто использовать foreach. Хорошо, так или иначе! Спасибо - Riccardo 0 сек назад – Riccardo

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