2016-09-26 5 views
-2

Что не так с этим фрагментом кода?Как получить значение из двухмерного массива

<?php 
$myarray=array_fill (0 , 2 , array_fill (0,1,3)); 
echo "> ".$myarray[0][1]." < <br>"; 
?> 

Результат выше команд эхо заключается в следующем:

> < 

Мое ожидание было бы отображаться '> 3 <'.

Как правильно получить значения двухмерных массивов, как в этом случае pls?

Благодаря

+0

нет $ MyArray [0] [1] попробовать это эхо ">" . $ myarray [0] [0]. "<
"; – JYoThI

ответ

1

Ваш код действительно создать двумерный массив, однако это фактические данные:

array(2) { 
    [0] => 
    array(1) { 
    [0] => 
    int(3) 
    } 
    [1] => 
    array(1) { 
    [0] => 
    int(3) 
    } 
} 

Так $myarray[0][1] не существует.

Внешний вызов array_fill() создает численный массив с двумя элементами, внутренний массив с одним элементом и значением 3. Оба набора клавиш начинаются с 0. Вот почему вы делаете не получите ключ 1 во внутреннем массиве, но только 0 как единственный ключ там.

Пожалуйста, прочитайте объяснение о аргументов функции, как документировано: http://php.net/manual/en/function.array-fill.php

+1

Благодарим вас за ответ. Теперь я знаю ... это была моя ошибка, когда я не читал руководство внимательно - я думал, что второй аргумент в функции array_fill означает «end index», в то время как он представляет число элементов в массиве. – sameucho

0

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

foreach($myarray as $val_array) 
{ 
    foreach($val_array as $val)  
    { 
     echo $val."<br>"; 
    } 
} 

выход:

3 
3 

DEMO

+0

Любая причина для ** Downvote ** пожалуйста? – Dave

0

Там не один индекс в 0'th индекса $ MyArray [0] [1]

<?php 

$myarray=array_fill (0 , 2 , array_fill (0,1,3)); 

echo "<pre>"; 

print_r($myarray); 

echo "</pre>"; 


echo "> ".$myarray[0][0]." < <br>"; 
?> 

ВЫВОД:

Array 
(
[0] => Array 
    (
     [0] => 3 
    ) 

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

) 

    > 3 < 
Смежные вопросы