我正在尝试在多维数组中添加序列号列表和数据库值,以生成从数据库中提取并使用数组打印的任务列表。
这是我的一段代码。
<?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 这是任务2 3.这是任务3,它不会从该数组$ task生成。
答案 0 :(得分:1)
您正在循环结果以创建数组 然后再循环输出它... 你可以
SIMPLIFY ....也许是这样的?
$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 ARRAY
答案 1 :(得分:0)
你可以简化一些事情。
$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
}