我从mysql表中动态提取以下数组,需要为每个元素分配索引。
Array
(
[yma] => 65.0000
[mhip] => 65.0000
[tzp] => 40.0000
[mzp] => 45.0000
[su] => 40.0000
[tkp] => 74.0000
)
这是我的预期输出。
Array
(
[0][yma] => 65.0000
[1][mhip] => 65.0000
[2][tzp] => 40.0000
[3][mzp] => 45.0000
[4][su] => 40.0000
[5][tkp] => 74.0000
)
或
Array
(
[0] => 65.0000
[1] => 65.0000
[2] => 40.0000
[3] => 45.0000
[4] => 40.0000
[5] => 74.0000
)
如果我想要的输出如下所示,可能会出现以下答案的问题:
Array
(
[0] => 'yma'
[1] => 'mhip'
[2] => 'tzp'
[3] => 'mzp'
[4] => 'su'
[5] => 'tkp'
)
我正在使用此代码来提取数据:
$myarray = array();
while($row = mysql_fetch_array($sql)){
$myarray[$row['pawl']] = $row['contribution'];
}
如何从MySQL获取/构建数组并生成所需的输出?
答案 0 :(得分:3)
使用array_values
。 “Array_values()返回数组中的所有值,并以数字方式索引数组。”
另外,
$myarray = array();
while($row = mysql_fetch_array($sql)){
$myarray[] = $row['contribution'];
}
这将指定从0开始的数字索引。
现在,如果您需要特定的数字索引来匹配每个棘爪代码,
然后建立地图:
$map = array
(
['yma'] => 1,
['mhip'] => 2,
['tzp'] => 3,
['mzp'] => 4,
['su'] => 5,
['tkp'] => 6,
);
重新映射 棘爪代码。
$remappedArray = array();
foreach($myarray as $pawlCode => $value){
$newIndex = $map[$pawlCode];
$remappedArray[$newIndex] = $value;
}
您希望如何处理遗失/新代码取决于您。
答案 1 :(得分:2)
为了创建你想要的数组(我将重点关注第二个例子,因为它更合理)你只需要一个函数 - array_values。
给出输入数组
Array
(
[yma] => 65.0000
[mhip] => 65.0000
[tzp] => 40.0000
[mzp] => 45.0000
[su] => 40.0000
[tkp] => 74.0000
)
它将返回一个只有值的数字索引数组,如下所示:
Array
(
[0] => 65.0000
[1] => 65.0000
[2] => 40.0000
[3] => 45.0000
[4] => 40.0000
[5] => 74.0000
)
如果你需要键而不是值,你只需在同一个起始数组上使用array_keys函数(参见上面的输入数组) - 你将获得以下输出:
Array
(
[0] => 'yma'
[1] => 'mhip'
[2] => 'tzp'
[3] => 'mzp'
[4] => 'su'
[5] => 'tkp'
)
PHP有一大套数组函数,一般来说,你很可能找到一个函数来帮助你通过数组获得/做任何你需要的东西。我鼓励您花一些时间在某个时刻浏览these。知道什么是可用的是值得的。
答案 2 :(得分:2)
将它用于您的第一个预期数组:
$myarray = array();
while($row = mysql_fetch_array($sql)){
$myarray[] = array($row['pawl'] => $row['contribution']);
}
这是你的第二个预期阵列:
$myarray = array();
while($row = mysql_fetch_array($sql)){
$myarray[] = $row['contribution'];
}