添加到多维数组中的值

亚历克·克莱尔

我的脚本有点麻烦。我做了一个简单的表格,我想要做的是,当用户输入他的名字时,这个名字已经在数组中了……他的业力得分将提高5。但是,我很难部分,我无法使它正常工作。

任何帮助或建议,将不胜感激。提前致谢!

<html>

<head></head>

<body>

<?php

$karma_score = array(   array("Userid" => 1, "NameID" => 'Doe', "Karma" => 45, "LastLogin" => "2012-08-30"),
                        array("Userid" => 2, "NameID" => 'Smith', "Karma" => 123, "LastLogin" => "2012-09-02"),
                        array("Userid" => 3, "NameID" => 'Chan', "Karma" => 1, "LastLogin" => "2011-12-23"),
                        array("Userid" => 4, "NameID" => 'Zee', "Karma" => 15, "LastLogin" => "2012-07-01"));

function printArray($a){
    echo '<table border="1px">';
    echo '<tr>';
        foreach(array_keys($a[0]) as $head){
            echo '<th>'.$head.'</th>';
        }
    echo '</tr>';

    foreach($a as $b) {
    echo '<tr>';
        echo '<td>'.$b['Userid'].'</td>';
        echo '<td>'.$b['NameID'].'</td>';
        echo '<td>'.$b['Karma'].'</td>';
        echo '<td>'.$b['LastLogin'].'</td>';
    echo '</tr>';
    }
    echo '</table>';
}

function findInfo($a){
    $InputName = $_POST['name'];

    for($counter = 0; $counter < 4; $counter++){
        foreach($a as $b) {
            if ($b['NameID'] === $InputName){
                // I would assume here is where the calculation would be done...
            }
        }
    }
printArray($karma_score);
}

while(isset($_POST['submit'])){
    findInfo($karma_score);
}

?>

<br>
<form action="" method="POST">
Name: <input type="text" name="name" placeholder="Enter Name Here">
ID: <input type="text" name="id" placeholder="Enter ID #">
<input type="submit" name="submit">

</body>

</html>
Littleibex

您的代码加上我的评论和建议:

<html>

<head></head>

<body>

<?php

// I am not sure why you have this variable here, But
// This variable will be initialized every time this page is loaded
// What it means is that this data won't be saved/updated for different users
// If you want data to keep updating across the web, you need to use a database
$karma_score = array(array("Userid" => 1, "NameID" => 'Doe', "Karma" => 45, "LastLogin" => "2012-08-30"),
    array("Userid" => 2, "NameID" => 'Smith', "Karma" => 123, "LastLogin" => "2012-09-02"),
    array("Userid" => 3, "NameID" => 'Chan', "Karma" => 1, "LastLogin" => "2011-12-23"),
    array("Userid" => 4, "NameID" => 'Zee', "Karma" => 15, "LastLogin" => "2012-07-01"));

function printArray($a)
{
    echo '<table border="1px">';
    echo '<tr>';
    foreach (array_keys($a[0]) as $head) {
        echo '<th>' . $head . '</th>';
    }
    echo '</tr>';

    foreach ($a as $b) {
        echo '<tr>';
        echo '<td>' . $b['Userid'] . '</td>';
        echo '<td>' . $b['NameID'] . '</td>';
        echo '<td>' . $b['Karma'] . '</td>';
        echo '<td>' . $b['LastLogin'] . '</td>';
        echo '</tr>';
    }
    echo '</table>';
}

// It seems like you are always passing
// $karma_score in here. If you want the original
// variable to always be updated, you need to pass
// it by reference like so:
// function findInfo(&$a)
function findInfo($a)
{
    // In the last line of the function
    // you are printing the variable $karma_score
    // Since, it's the global variable, you cannot directly use
    // it in here. You need to pull it in the function like so:
    // global $karma_score;

    $InputName = $_POST['name'];

    for ($counter = 0; $counter < 4; $counter++) {
        foreach ($a as $b) {
            if ($b['NameID'] === $InputName) {
                // I would assume here is where the calculation would be done...
            }
        }
    }
    printArray($karma_score);
}
// This is an infinite loop
// It should be if instead of a while
while (isset($_POST['submit'])) {
    // Since you already have $karma_score as a global variable
    // You don't need to pass it here
    findInfo($karma_score);
}

?>

<br>

<form action="" method="POST">
    Name: <input type="text" name="name" placeholder="Enter Name Here">
    ID: <input type="text" name="id" placeholder="Enter ID #">
    <input type="submit" name="submit">

</body>

</html>

这可能是您要寻找的:

<html>

<head></head>

<body>

<?php

$karma_score = array(array("Userid" => 1, "NameID" => 'Doe', "Karma" => 45, "LastLogin" => "2012-08-30"),
    array("Userid" => 2, "NameID" => 'Smith', "Karma" => 123, "LastLogin" => "2012-09-02"),
    array("Userid" => 3, "NameID" => 'Chan', "Karma" => 1, "LastLogin" => "2011-12-23"),
    array("Userid" => 4, "NameID" => 'Zee', "Karma" => 15, "LastLogin" => "2012-07-01"));

function printArray($a)
{
    echo '<table border="1px">';
    echo '<tr>';
    foreach (array_keys($a[0]) as $head) {
        echo '<th>' . $head . '</th>';
    }
    echo '</tr>';

    foreach ($a as $b) {
        echo '<tr>';
        echo '<td>' . $b['Userid'] . '</td>';
        echo '<td>' . $b['NameID'] . '</td>';
        echo '<td>' . $b['Karma'] . '</td>';
        echo '<td>' . $b['LastLogin'] . '</td>';
        echo '</tr>';
    }
    echo '</table>';
}

function findInfo()
{
    global $karma_score;

    $InputName = $_POST['name'];

        foreach ($karma_score as $key => $b) {
            if ($b['NameID'] === $InputName) {
                $karma_score[$key]["Karma"] += 5;
            }
        }

    printArray($karma_score);
}

if (isset($_POST['submit'])) {
    findInfo();
}

?>

<br>

<form action="" method="POST">
    Name: <input type="text" name="name" placeholder="Enter Name Here">
    ID: <input type="text" name="id" placeholder="Enter ID #">
    <input type="submit" name="submit">

</body>

</html>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将字段 - 值添加到 php 中的多维数组

来自分类Dev

添加到PHP中的多维数组

来自分类Dev

比较多维数组中的值并将键添加到数组

来自分类Dev

在php中将值添加到多维关联数组

来自分类Dev

如何将值添加到多维数组?

来自分类Dev

使用push()将值添加到空多维数组中的索引

来自分类Dev

如何添加到数组中的值

来自分类Dev

将数组中的数组值添加到数组值

来自分类Dev

将数据添加到多维数组

来自分类Dev

将多维数组添加到列表

来自分类Dev

将元素添加到多维数组

来自分类Dev

PHP添加到多维数组

来自分类Dev

将数据添加到多维数组

来自分类Dev

添加到数组并在数组中查找值

来自分类Dev

numpy 将一列值添加到多维数组以进行区分

来自分类Dev

在PHP中将数组添加到矩阵(多维)数组

来自分类Dev

如何将数组添加到多维数组?

来自分类Dev

在PHP中将数组添加到矩阵(多维)数组

来自分类Dev

将值添加到数组中的用户元字段

来自分类Dev

使用循环将自动值添加到数组中

来自分类Dev

将值添加到对象PHP中的数组

来自分类Dev

如何将值添加到数组列表中

来自分类Dev

将对象的值添加到数组的每个元素中

来自分类Dev

将值添加到数组中的元素之一

来自分类Dev

将多个值添加到javascript中的数组或对象

来自分类Dev

将值添加到从文件java的数组读取中

来自分类Dev

无法将nil值的字典添加到数组中

来自分类Dev

在PHP中将重复值添加到数组中

来自分类Dev

值未添加到PHP foreach语句的数组中