2016-10-09 2 views
1
$matrix=array($_SESSION['review_buffer_name'],$_SESSION['review_buffer_mail'],$_SESSION['review_buffer_comment']); 

Вышеприведенная строка кода находится внутри цикла WHILE. Таким образом, он хранит более одной записи массива. Правильно ли он хранит записи ?. И как мы можем получить доступ к каждой записи и стоимости матрицы?Как хранить строковые переменные в php-массиве

$ матрица должна хранить несколько строк массивов ... Проблема заключается в том, когда я доступ к $ матрицы [2], то она дает второе значение массива ... вместо второй записи массива

+0

Поделитесь своим циклом while? именно то, что вы хотите сделать? Описать использование $ matrix массива. – AHJeebon

+0

$ matrix должен хранить несколько рядов массивов ... Проблема в том, что когда я обращаюсь к $ matrix [2], тогда он дает второе значение массива ... вместо второй записи массива –

+0

Это потому, что ваша '$ matrix' является обычным списком, и кажется, что вы ничего не добавляете к вашей коллекции результатов. вы всегда переписываете переменную '$ matrix', если этот конкретный оператор находится в вашем' while'. Попытайтесь использовать '$ matrix [] = [...];' и посмотреть, какие изменения или поделиться больше с вашим кодом. –

ответ

0

вы можете попробовать:

//Before while loop declare the array variable 
$matrix = array(); 

While(your condition){ 
    $matrix[] = array(
      $_SESSION['review_buffer_name'], 
      $_SESSION['review_buffer_mail'], 
      $_SESSION['review_buffer_comment'] 
    ); 
} 

//To access array: 

print_r($matrix[0]); //print_r whole first row. (array start from 0) 
echo $matrix[0][0]; //echo single data that first row's first data 

Или вы можете установить индекс как имя, как:

//Before while loop declare the array variable 
$matrix = array(); 

While(your condition){ 
    $matrix[] = array(
      'review_buffer_name'=>$_SESSION['review_buffer_name'], 
      'review_buffer_mail'=>$_SESSION['review_buffer_mail'], 
      'review_buffer_comment'=>$_SESSION['review_buffer_comment'] 
    ); 
    } 

//Then access array: 

print_r($matrix[0]); //print_r whole first row. (array start from 0) 
echo $matrix[0]['review_buffer_name']; // first row's first data 
Смежные вопросы