php – push массив в массив – ключевой вопрос

Я пытаюсь вставить несколько массивов в один большой массив, в результате получается массив размером 2 лвл.

Я получил этот набор массивов, например:

 массив
 (
     [cod] => ddd
     [denum] => ffffffffffffffff
     [descr] => ggggggg
     [cant] => 3
 )
 массив
 (
     [cod] => fff
     [denum] => dfgdfgdfgdfgdfg
     [descr] => dfgdfgdfgdfgdfg
     [cant] => 33
 )

Но после массива push я получаю этот массив:

 массив
 (
     [0] => Массив
         (
             [0] => ddd
             [1] => ffffffffffffffff
             [2] => ggggggg
             [3] => 3
         )

     [1] => Массив
         (
             [0] => fff
             [1] => dfgdfgdfgdfgdfg
             [2] => dfgdfgdfgdfgdfg
             [3] => 33
         )

 )

В основном это то, что я хочу сделать, НО, если вы заметите после нажатия, ключи забыли и преобразуются в числовые.

Это то, что я хочу, чтобы он выглядел так:

 массив
 (
     [0] => Массив
         (
             [cod] => ddd
             [denum] => ffffffffffffffff
             [descr] => ggggggg
             [cant] => 3
         )

     [1] => Массив
         (
             [cod] => fff
             [denum] => dfgdfgdfgdfgdfg
             [descr] => dfgdfgdfgdfgdfg
             [cant] => 33
         )

 )

образец кода im с использованием:

$res_arr_values = array(); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { array_push($res_arr_values, array_values($row)); } 

Может кто-нибудь мне помочь?

Не используйте array_values в $row

 $res_arr_values = array(); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { array_push($res_arr_values, $row); } 

Кроме того, предпочтительным способом добавления значения в массив является запись $array[] = $value; , не используя array_push

 $res_arr_values = array(); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $res_arr_values[] = $row; } 

Дальнейшая оптимизация заключается не в вызове mysql_fetch_array($result, MYSQL_ASSOC) а в том, чтобы mysql_fetch_assoc($result) использовать mysql_fetch_assoc($result) .

 $res_arr_values = array(); while ($row = mysql_fetch_assoc($result)) { $res_arr_values[] = $row; } 

Я думаю, вам нужно идти

 $arrayname[indexname] = $value; 

http://uk.php.net/manual/en/function.array-values.php

array_values, поскольку вы используете его, фактически отбрасывает ключи

Использовать это..

 $res_arr_values = array(); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $res_arr_values[] = $row; } 

сначала конвертируйте свой массив JSON

 while($query->fetch()){ $col[] = json_encode($row,JSON_UNESCAPED_UNICODE); } в while($query->fetch()){ $col[] = json_encode($row,JSON_UNESCAPED_UNICODE); } 

затем верните обратно в массив

 foreach($col as &$array){ $array = json_decode($array,true); } 

удачи

 $res_arr_values = array(); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $res_arr_values[] = $row; } array_push == $res_arr_values[] = $row; example <?php $stack = array("orange", "banana"); array_push($stack, "apple", "raspberry"); print_r($stack); Array ( [0] => orange [1] => banana [2] => apple [3] => raspberry ) ?>