为PHP数组分配索引
我从mysql表中动态提取以下数组,并需要为每个元素分配索引为PHP数组分配索引,php,mysql,arrays,indexing,Php,Mysql,Arrays,Indexing,我从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
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] => '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获取/构建阵列并生成所需的输出?使用。“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;
}
如何处理丢失/新代码取决于您。使用。“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;
}
如何处理丢失的/新的代码取决于您。为了创建您想要的数组(我将重点讨论示例二,因为它更合理),您只需要一个函数- 给定的输入数组
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
(
[0] => 'yma'
[1] => 'mhip'
[2] => 'tzp'
[3] => 'mzp'
[4] => 'su'
[5] => 'tkp'
)
PHP有一大套数组函数,一般来说,您可以找到一个函数来帮助您获取/执行数组所需的任何操作。我鼓励你花点时间,在某个时候浏览一下。知道您可以使用什么是值得的。为了创建您想要的阵列(我将重点介绍示例二,因为它更合理),您只需要一个函数- 给定的输入数组
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
(
[0] => 'yma'
[1] => 'mhip'
[2] => 'tzp'
[3] => 'mzp'
[4] => 'su'
[5] => 'tkp'
)
PHP有一大套数组函数,一般来说,您可以找到一个函数来帮助您获取/执行数组所需的任何操作。我鼓励你花点时间,在某个时候浏览一下。知道您可以使用什么是值得的。将此用于您的第一个预期阵列:
$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'];
}
这是您的第二个预期阵列:
$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'];
}
将其用于第一个预期阵列:
$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'];
}
这是您的第二个预期阵列:
$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'];
}
你的问题是…?你的问题是…?这正是我想要的。非常感谢。不要用这个。请在下面使用一次。请您解释一下原因。我添加了第三个所需的输出。要获得第三个所需的输出格式,只需在原始数组上调用array u键。当我开始工作时,我会用一段代码来修改我的答案。这正是我想要的。非常感谢。不要用这个。请在下面使用一次。请您解释一下原因。我添加了第三个所需的输出。要获得第三个所需的输出格式,只需在原始数组上调用array u键。当我开始工作时,我会用一段代码修改我的答案。这实际上是唯一正确的答案。其他人需要先从mysql填充一个数组,然后在thta数组上调用其他方法以获得指定的结果。这将直接给出删除结果。根据最初的问题,作者显示了他从mysql填充数据数组的方法。他不是在要求一个从数据库封送数据的方法,而是要求一个将数据转换为所需格式的方法。在加入权重之前,请务必仔细阅读问题。@Michal sk您是对的,但我先询问方法,然后才了解我的其他需求。你们太棒了。我已经用第三个期望的输出更新了我的问题,并尝试应用这里的方法和查询,但没有成功。请你更新一下答案。如果我在我的项目中实际使用它,那将是很大的帮助。这实际上是唯一正确的答案。其他人需要先从mysql填充一个数组,然后在thta数组上调用其他方法以获得指定的结果。这将直接给出删除结果。根据最初的问题,作者显示了他从mysql填充数据数组的方法。他不是在要求一个从数据库封送数据的方法,而是要求一个将数据转换为所需格式的方法。在加入权重之前,请务必仔细阅读问题。@Michal sk您是对的,但我先询问方法,然后才了解我的其他需求。你们太棒了。我已经用第三个期望的输出更新了我的问题,并尝试应用这里的方法和查询,但没有成功。请你更新一下答案。如果我真的在我的项目中使用它,那将是很大的帮助。