如何将序列号列表和数据库值放在多维数组中


How to put serial number list and database values in an multidimensional array together?

我正在尝试将多维数组中的序列号列表和数据库值添加到一起,以创建从数据库中获取并使用数组打印的任务列表。

这是我的代码段。

<?php
    $i = 0;
    $query = mysqli_query($sqlconn, 'SELECT task FROM tasks');
    $task[] = array();
    while($a = mysqli_fetch_array($query))
    {
        $i++;
        array_push($task[0], $i);
        array_push($task[1], $a[0]);
    }
    echo '<br/>You are having <b style="color:red;">' . $i . '</b> tasks to do.<br/><br/>';
    foreach($task as $tasks)
    {
        echo $tasks[0] . '. ' . $tasks[1] . '<br/>';
    }
?>

我是编程和PHP的初学者。

我想得到这样的输出1. 这是任务 12. 这是任务 23.这是任务3,它不是从该数组$task生成任务。

您正在循环结果以创建数组而不是再次循环输出它...您可以

简化。。。。也许像这样?

$i = 0; 
$query = mysqli_query($sqlconn, 'SELECT task FROM tasks');
$tot = mysqli_num_rows($query);
echo '<br/>You are having <b style="color:red;">' . $tot . '</b> tasks to do.<br/><br/>'; 
while($a = mysqli_fetch_array($query))
{   
     echo $i++ . '. ' . $a[0] . '<br/>';
}

如果你真的需要把它存储在数组中,然后输出它:

$task = array();
while($a = mysqli_fetch_array($query))
{
    $task[] = array($i++, $a[0]);
}
foreach($task as $tasks)
{
    echo $tasks[0] . '. ' . $tasks[1] . '<br/>';
}

很少解释

在 PHP 中,你像这样创建一个数组:

# this...
$array = array('aaaa', 'bbbb', 'bbbb');
# ... is the same as:
$array = array();
$array[] = 'aaaa';
$array[] = 'bbbb';
$array[] = 'cccc';
# ...is the same as:
$array = array();
$array[0] = 'aaaa';
$array[1] = 'bbbb';
$array[2] = 'cccc';
# Multi dimentional : just set each array entry as an array itself:
$array = array();
$array[0] = array('aaaa', 'bbbb', 'cccc');
$array[1] = array(0=>'aaaa', 1=>'bbbb', 2=>'cccc');
$array[1][2] = array('dddd', 'eeee');

请进一步阅读文档:PHP数组

你可以把事情简化很多。

$query = mysqli_query($sqlconn, 'SELECT task FROM tasks');
$tasks = array();
while( $row = mysqli_fetch_assoc($query) ) {
    $tasks[] = $row['task'];
}
echo 'Total tasks: '.sizeof($tasks);
foreach ( $tasks as $key => $value ) {
    echo 'Task #'.$key.': '.$value;
}

没有必要手动递增每个键 ($i),因为 PHP 会为你做到这一点。 每个任务都有一个主键吗? 如果是这样,请考虑将其用作数组键,因为它将使搜索数组变得更加容易。

$query = mysqli_query($sqlconn, 'SELECT task_id, task FROM tasks');
while( $row = mysqli_fetch_assoc($query) ) {
    $tasks[$row['task_id']] = $row['task'];
}
// Get a single task
if ( isset($tasks[25]) ) {
    // do something 
}