为PHP数组分配索引

为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

我从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] => '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您是对的,但我先询问方法,然后才了解我的其他需求。你们太棒了。我已经用第三个期望的输出更新了我的问题,并尝试应用这里的方法和查询,但没有成功。请你更新一下答案。如果我真的在我的项目中使用它,那将是很大的帮助。