PHP-将数组推入数组-关键问题 [英] php - push array into array - key issue
问题描述
我正在尝试将多个阵列推入1个大阵列,从而形成2个lvl阵列.
i am trying to push multiple arrays into 1 big array, resulting in a 2 lvl array.
例如,我得到了这组数组:
I got this set of arrays for example:
Array
(
[cod] => ddd
[denum] => ffffffffffffffff
[descr] => ggggggg
[cant] => 3
)
Array
(
[cod] => fff
[denum] => dfgdfgdfgdfgdfg
[descr] => dfgdfgdfgdfgdfg
[cant] => 33
)
但是,在推入数组之后,我得到了这个数组:
But, after array push, i get this array:
Array
(
[0] => Array
(
[0] => ddd
[1] => ffffffffffffffff
[2] => ggggggg
[3] => 3
)
[1] => Array
(
[0] => fff
[1] => dfgdfgdfgdfgdfg
[2] => dfgdfgdfgdfgdfg
[3] => 33
)
)
基本上,这就是我要执行的操作,但是,如果您在按下按钮后注意到,则忘记了按键,并将其转换为数字.
Basically this is what i want to do, BUT, if you notice after the push, the keys are forgotten, and converted to numeric.
这就是我想要的样子:
Array
(
[0] => Array
(
[cod] => ddd
[denum] => ffffffffffffffff
[descr] => ggggggg
[cant] => 3
)
[1] => Array
(
[cod] => fff
[denum] => dfgdfgdfgdfgdfg
[descr] => dfgdfgdfgdfgdfg
[cant] => 33
)
)
示例代码即时通讯使用:
sample code im using:
$res_arr_values = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
array_push($res_arr_values, array_values($row));
}
有人可以帮我吗?
推荐答案
请勿在$row
$res_arr_values = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
array_push($res_arr_values, $row);
}
此外,向数组添加值的首选方法是编写$array[] = $value;
,而不使用array_push
Also, the preferred way to add a value to an array is writing $array[] = $value;
, not using 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)
.
And a further optimization is not to call mysql_fetch_array($result, MYSQL_ASSOC)
but to use mysql_fetch_assoc($result)
directly.
$res_arr_values = array();
while ($row = mysql_fetch_assoc($result))
{
$res_arr_values[] = $row;
}
这篇关于PHP-将数组推入数组-关键问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!